【30分で動かすシリーズ】FabricでOpenSSL祭に対応してみる

AWS運用自動化サービス「Cloud Automator」
この記事は1年以上前に書かれたものです。
内容が古い可能性がありますのでご注意ください。

先日、OpenSSLに脆弱性が見つかり対応する必要がありました。
対応すると言っても一言でいえばOpenSSLを更新すれば良いのですが、対象のサーバが何十台、何百台あると大変です。 
いわゆる刺身タンポポな作業になります。
人生は有限です。機械に任せられるところは任せてさっさとビールでも飲みたいものです。
「機械に任せて」の部分をFabricでやってみます。 
FablicLogo

 

Fabricとは

公式サイトはこちらになります。
公式サイトを開くとすぐ動作例が書かれています。 
一言で雑に言いますと「すげぇSSH」です。

 

今回の想定

複数台のサーバのOpenSSLを更新する、とします。
対象のサーバには手動でsshできる環境があるとします。
「複数台のサーバそれぞれにsshログインしてOpenSSLを更新して、サーバを再起動させる」 を手動で行うところをFabricを使って自動化しましょうという内容になります。

Fabricのインストール

FabricはPythonで動きます。Pythonが動く環境でしたら下記を実行するだけでFabricが動くようになります。

 

タスクを書く

OpenSSLを更新するために「yum -y update openssl」して終わったら再起動する内容です。

env.use_ssh_config」は対象にsshするときに~/.ssh/configを見に行くようにするためです。
これを書いておくと手動でsshするときの設定を利用でき、Fabricを実行するための設定を書かなくてよいという利点があります。

 

動かしてみる

今回の対象はRedhat Enterprise Linuxを使ってみます。
テストとしてAWSから提供されているRHEL6.5のAMIから2台ラウンチしておきます。
それが「RHEL-Test-A」および「RHEL-Test-B」になります。ターミナルで「ssh RHEL-Test-A」とすると接続できる感じです。

何をしているかを出力するようにしていますので、がんばっている感が分かります。


対象2台はt1.microでラウンチして実行時間は1分ほどでした。手動でやるとどのくらいかかるでしょうね。早くビールが飲めますね。

 

まとめ

「自動化」と言いますと最近ではChefで!という流れがありますが、こういうツールもあるよというご紹介でした。(今更ではあります)
「これって自動化できないかな?」と考えながら作業するのは大事、同じことを3回やるようになったら自動化を検討しましょう。2回でもいいです。
当然、タスクの内容はいろいろ書けます。「これってどうやれば?」と思ったらググれば出てきます。
何か自動化したいなぁと思ったときFabricを思い出していただけると幸いです。 

AWS運用自動化サービス「Cloud Automator」