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


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


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

私はリリース直前にチームに参加し、開発の傍ら運用改善活動をしていました。
その結果としてTerraform を導入し、Terraform (+ Terraform …

more ...

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

やりたいこと

サーバー管理には ansible を使っていますが、apt で入れているパッケージに対して、以下をやりたい状況がありました。
- インストールされていなかったらインストール
- あるバージョン未満だったらアップデート

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

結論

  • バージョン比較には、 version_compare filter を使う
  • バージョン比較方法としては …
more ...

git bisect でバグ/仕様変更のコミットを探す

まとめ

  • git bisect が便利
  • ansible 2.1.0 -> 2.1.1 で group名に / を入れるとうまく動かないケースが存在する
    • ansible リポジトリでbisect すると対象のコミットは 7287effb5ce241ce645d61e55e981edc73fa382a
    • group名には / を入れないように、 group_vars 以下はフラットな構成にしよう

遭遇した問題

ansible で構成 …

more ...

Anisble for Windows

久しぶりに ansible で windows を操作するので、メモ。
実行側は Debian Sid でやっているので、apt-get しているところについては、適宜置き換えて欲しい。
ansibleは2.1.0を使っている。

やること

以下を anisble で実行する。

  1. Windows Update
  2. Windows Server 2012 …
more ...