ひつまぶし食べたい

メモ代わりのブログ

Google Cloud Pub/Sub をGolangから使おうとしてハマったことまとめ

概要

Google Pub/SubGoのSDK から使おうとしていました。 やっているといくつか詰まったので、メモしておきます。

  1. サービスアカウントを利用するためにCredentials JSONを指定する
  2. サブスクリプションの Pub/Sub サブスクライバー権限 を与えても Permission Denied になる

サービスアカウントを利用するためにCredentials JSONを指定する

権限の都合上、サービスアカウントのCredentials JSONを利用して認証したい、という要件がありました。 ドキュメントを見ていると、 ADC(Application Default Credentials) を利用して認証している場合が多いです。 これを使う場合、 GOOGLE_APPLICATION_CREDENTIALS という環境変数が設定されていれば、そのファイルを読んでくれるのですが、今回の要件では複数の Credentials を利用したかったので、Go プログラム中で指定する必要がありました。


さくらのクラウドでN百台を管理するためにterraformとansibleを使っている話


これは、さくらインターネット Advent Calendar 2017 として書いた記事 です。


さくらインターネットでは、今年4月からIoTプラットフォームの sakura.io をサービス提供しています。 sakura.io は、さくらのクラウド上で本番・検証環境を構築しており、数百台のサーバーを利用しています。


Mesos の sandbox のログローテーションをする

結論

概要

Mesos + Marathon 環境でdockerを動かしている。 基本的にコンテナのログは fluentd で飛ばしているのだけど、日に日に mesos slave のディスク容量が圧迫されていた。 調べてみると、 /var/lib/mesos-slave/slaves/ 以下にあるフォルダのうち、sandbox のログが肥大化していた。 sandbox には stdout, stderr があって、それぞれコンテナのstdout, stderrを記録しているファイルで、mesosからファイルとして取得することができる。 長期的なものは fluentd で飛ばしているので問題ないため、障害時や直近の確認のために sandbox を使うことにして、 短期間でのログローテーションを行うことにした。


Ansible でバージョンチェックする

やりたいこと

サーバー管理には ansible を使っていますが、apt で入れているパッケージに対して、以下をやりたい状況がありました。

  • インストールされていなかったらインストール
  • あるバージョン未満だったらアップデート

pipやgemといった言語のパッケージマネージャと違って、apt ではバージョンの制約を書くことが面倒です。 いい感じに playbook の中でバージョン比較をして、インストール/アップデートすべきかを判定したいと考えました。


Travis CIで git submodule update --init --recursive を止める

結論

git:
  submodule: false
  • 個別に git submodule update --init hoge していくとき、ビルドのトップディレクトリに戻りたくなることがある。この場合には、 $TRAVIS_BUILD_DIR を使えば良い。

経緯

久しぶりにこのブログを書いたらビルドに失敗していた。 原因としては、このブログで利用している getpelican/pelican-plugins のsubmoduleの設定によって、 取得できないsubmoduleがあり、 git submodule update --init --recursive に失敗しているという感じだった。


Intel NUC 上に vSphere 6.5 のVSAN環境を作る

あまりVMwareを触らなくなってきて、何も見ずにvCenterの設定とかMaximum configurationsとか言えなくなってきたので、VMware周りのことをメモに残しておくことにする。 ひとまず、自宅のVSAN環境の構築メモ。


さくらのクラウドを便利に使うためのツールメモ

1. CLIで操作したい

usacloud が今一番良い。 非公式と書かれているが、サポートされている機能、更新頻度、使い勝手、導入のしやすさ、などどれをとっても usacloud を使うべき。


自宅 vSphere 上の CoreOS (Container Linux) のデプロイメモ

構成

Mesos などを立てるため、Master 3台, Slave 2台以上の予定で作る。

OSイメージ

VMware用のイメージを利用。 /usr/share/oem/cloud-config.yml に vmware tools周りの設定が入っているので便利。


Rust を始めるための設定

rust のインストール

公式からインストールのためのスクリプトが提供されている。 これを使うと、rustup というrustのマネージャが使えるようになって、 rustc のバージョンアップや切替なんかができるらしい。


ニフティ株式会社を退職しました

本日最終出社日でした。

ニフティでやったこと

ニフティでは、ニフティクラウドのIaaSを中心に仕事をしていました。 基本的にずっと @ysaotome さんの下で働いており、 チームメンバーも優秀だったので、とても面白い環境でした。