寝ても覚めてもこんぴうた

プログラム書いたり、ネットワーク設計したり、サーバ構築したり、車いじったり、ゲームしたり。そんなひとにわたしはなりたい。 投げ銭は kyash_id : chidakiyo マデ

シンプルなテンプレートエンジンのenvsubstをインストールせずに使う

motivation 色々な仕組みを作るときにテンプレートエンジンが欲しくなることがあると思いますが、 あまり仰々しい感じの仕組みを利用したくない、(or インストールしたくない)ということはあると思います。 kubernetes(k8s)の設定ファイルのパラメータを環…

コンテナでgcloudコマンドを実行するとERROR: gcloud crashed (UnicodeDecodeError): 'ascii' codec can't decode byte 0xe8 in position 1: ordinal not in range(128) みたいなエラーが出る

タイトルの通りで、 コンテナ環境で gcloud コマンドを実行した際 ERROR: gcloud crashed (UnicodeDecodeError): 'ascii' codec can't decode byte 0xe8 in position 1: ordinal not in range(128) のようなエラーが発生してうまく実行できない。 なぜ glcou…

モノレポ(mono repository)内でgoのmoduleを相対パスで利用する方法

goの依存管理ツールはいろいろありますが、最新はGo Modules(mod)を利用することが多くなってきたと思います。 dep(vendor)を利用した依存解決の場合にはgopath配下にあればある程度柔軟に相対的に依存を解決できましたが、 modは普通に利用するとリポジトリ…

Docker build時にキャッシュを利用しない

Docker build する際に、基本的にはCacheを利用されますが、 それでは困る(毎回ちゃんと処理したい)という場合もあると思います。 そんなときは --no-cache オプションを docker build 時に付与すれば良い。 ま、それだけ。 docker build | Docker Documen…

BQMLのサンプルのqueryitを触ってみた

query-itってなに? Groovenautsさんが作った、BQMLのサンプルアプリケーション ソースコードもろもろは多分 こちら こちらのURL からアクセスできたのでメモがてら記事を残します。 使い方 URLでアクセス http://queryit.magellanic-clouds.com/ にアクセス…

git diffで長い行を改行して表示させる

git

git diff をしたときに長い行がターミナルの外に行ってしまって見えない場合、 GIT_PAGER='' git diff ~~ とすればよい。 これだけ、簡単。

自分がよく利用するDockerのコンテナ(メモ)

CI/CDをする際によく利用する、GCPを利用するなら特に知っていたほうが良さそうなコンテナたちをメモ。 GoogleCloudPlatform/cloud-builders GitHub - GoogleCloudPlatform/cloud-builders: Supported builder images for Google Cloud Build この辺りが含ま…

GCP Update 2019/03/06

直近のGCPのアップデートはこんな感じ - BigQuery sandbox: beta - Kubernetes Engine – node auto-repair: GA - Kubernetes Engine – node auto-upgrades: GA - Compute Engine – guest attributes: beta - Kubernetes Engine – Application-layer Secrets …

GCP 2019/02/19 の UPDATE

UPDATEがあった項目は以下 Cloud Firestore: GA App Engine flexible environment – WebSockets support: beta Internal load balancer – service discovery: GA Private Google Access for on-premises hosts: GA Apigee Developer Portal – SmartDocs, acc…

CloudSQL へローカルから接続できない(という人のために)

GCP で MySQL や PostgreSQL のような RDB をマネージドで利用したい場合に CloudSQL を選択することが多いと思います。 ポチポチっと押せばすぐにインスタンスが出来上がるし、gcloud コマンドや、Cloud Shell を利用することで用意に接続ができるので、ふ…

GAE(Appengine)のハンドラの例にある `_ah` ってなに?

こんにちは。chidakiyo です。 皆さんappengine使ってますか? _ahはどういうサンプルに出てくる? appengineのサンプルで、 ハンドラのパスに _ah というパスが含まれていることがあると思います。 例えば、warmupするための こちら の例を見てみましょう。…

GCP 2018/12/17 の UPDATE

Cloud Security Command Center: beta セキュリティの脆弱性を探してくれるやーつ https://cloud.google.com/security-command-center/ Cloud Functions – per-function identities: beta 機能ごとにIAM設定できるので細かく設定できるとかなんとか https://…

minikubeでspinnakerを動かすまで(Macのローカルでspinnakerを動かす)

とりあえずサクッと動かせる環境が欲しかったので、ローカルのminikubeでも一応spinnakerを動かすことはできそうだったので試す。 事前準備 helmがインストールが完了していること (brew install kubernetes-helm) kubectlのインストールが完了していること …

Raspberry Pi : Mackerelで監視してみる

エージェントのダウンロード ダウンロードするディレクトリに移動し、 cd ~ arm用のバイナリをダウンロードする。 こちら から実行時点で最新のものを利用するのが良いと思います。 wget https://github.com/mackerelio/mackerel-agent/releases/download/v0…

helm install しようとしたら Error: could not find tiller のようなエラーが発生したので解決した

タイトルの通りなんですが、helmでローカルのminikubeにhelmインストールをしようと思い、helm install ~~ のような感じでコマンドを実行したがエラーが発生してうまくいかない。 おそらく、helmはインストールしたあとに、GKEのクラスタに対して初期設定を…

Appengine (Node.js/Standard) 環境でHeadless Chromeを利用してサイトのスクリーンショットを取得する

過去に2回ほどGAE/Nodeの記事 これ と これ を書きましたが、もともとはこのHeadless ChromeをAppengine上で利用したかったのでそれを試したかったため。 Headless Chromeを利用することで、Webページのスクリーンショットだったり、JavaScriptが動いていな…

Building a Node.js App on App Engine なぞってみる

この記事は Building a Node.js App on App Engine をなぞってみた話です。 前回の記事 をふまえて、Node.jsのappを作成してGAEにdeployしようという記事です。 1. Creating a Google Cloud Platform project GCPにプロジェクトを作りましょう。 あと、appen…

Appengine Node.js Standard Environmentをデプロイしてみる(quickstart)

まず初回はquickstartに倣ってデプロイしてみるだけ。 ほぼ こちら のクイックスタートのままやってみようと思う。 事前に必要なもの(というかもう設定済みなので) GCPのアカウント作成(gmailアドレスあればすぐ) GCPのプロジェクト作成(適当にGCPコン…

Appengineで初回1回だけ実行したい(設定の初期化)ときはwarmupを利用する

Appengine (GAE) はリクエストのイベントでインスタンスが起動されるので、通常のアプリケーションを実装した際に初回1回だけ実行する処理というのが普通に実装するとなかなか難しい。 特にDB(Datastore)アクセスなどが必要な場合にはrequestが無いとappen…

Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what? (Kubernetes NodePort と LoadBalancer と Ingress のどれを使うべきか) を訳した

Kubernetes NodePort vs LoadBalancer vs Ingress? When should I use what? がよくまとまった記事だったので社内で共有するために適当に訳してみた Kubernetes NodePort と LoadBalancer と Ingress のどれを使うべきか 最近、NodePorts、LoadBalancers、In…

Raspberry Pi に関して書いた記事一覧(ブクマおすすめw)

最近Raspberry Piに関して何本か記事を書いたので INDEX. chidakiyo.hatenablog.com chidakiyo.hatenablog.com chidakiyo.hatenablog.com chidakiyo.hatenablog.com chidakiyo.hatenablog.com chidakiyo.hatenablog.com chidakiyo.hatenablog.com chidakiyo.…

Raspberry Pi : OSのswapを無効にする

どういうこと? Raspberry PiはストレージがSDカードなので、読み書きを大量にしているとちょっと寿命的に気になる。 そのため無駄な読み書きをなくすためにswapを無効化したほうが良さそう! (実際にRaspberry PiでKubernetesクラスタを作る手順とかでもsw…

Raspberry Pi : tmuxをインストールする

Motivation Raspberry Pi上でなにか処理をするとまーまー時間がかかります。 特にDockerのBuildとか待ってるのしんどいですよね。もうすぐ帰ろうというタイミングでうっかり実行すると悲しくなります。 そんな時にtmuxがインストールされていればデタッチす…

Raspberry Pi : Dockerのexperimentalな機能(--squash)を有効化する

Motivation MacもRaspberry Piもバージョンは 18.06.1-ce で同じものを使っていたのですが、Mac側では--squashを利用できたものの、Raspberry Pi側では利用できなかったので有効化したい。 (おそらくMacはDocker on MacのEdgeを利用していたので有効化され…

Raspberry Pi : Dockerのインストールと設定を行う

Motivation もちろん、Raspberry PiでもDocker使いたいっしょ!w Dockerのインストール curl -fsSL get.docker.com -o get-docker.sh && sh get-docker.sh Dockerグループの作成 sudo groupadd docker もしかするとすでにあるかも piユーザをdocker groupに…

Raspberry Pi : nginxのインストールと設定を行う

Motivation やはりサーバを立てたからには、なにかアクセスして使いたい! というわけでnginxでもインストールしましょう。 nginxのインストール sudo apt-get -y install nginx 多分この時点でnginxが起動しているはず。 起動していない場合には sudo syste…

Raspberry Pi : vimの設定を行う

Motivation 標準でインストールされている vim はイマイチなので、普通のvimをインストールしてSyntax Highlightなどがされるようにしたい。 vim-common, vim-tinyのアンインストール sudo apt-get -y --purge remove vim-common vim-tiny 普通のvimnインス…

Raspberry Pi : gitのインストールと設定を行う

Motivation go getをする際にもgitが入っていないとだめなので、gitをインストールしなくてはなりませんね。 gitのインストール sudo apt-get -y install git ここまでで利用はできるのですが、一応gitの設定もしておく globalユーザ情報の設定(Optional) …

Raspberry Pi : goのインストールと設定を行う

Motivation 基本的には自分はgolangでプログラムを書くことが多いので、go入れておきます。 goのバイナリのダウンロード ここ のページからアーキテクチャが ARM のものを選択しましょう。 ブラウザからリンクを右クリックしてURLをコピーします 一応ホーム…

Raspberry Pi : OSの初期設定を行う(Raspbian)

前回の記事 Raspberry Pi : OSのインストール ターミナルへのログイン Raspberry Piを起動するとCUIで起動した状態になるはず。 そこで、デフォルトのユーザでログインする。 ID : pi PASSWORD : raspberry のデフォルトアカウントでログインできる。 多分文…