Chef、覚えるの大変ですよね。私は挫折しました。いや、案は練っているけど他の方法もないかなーと模索中です。
そこで見つけたのがFabricです。
意識の低い自動化 from greenasparagus
あんまり面倒なこと考えずに、とりあえず自動化したいだけならこれでいいかなー。とか思っちゃいます。ものは試しでやってみましょう。
fabricをインストールしよう
まずはVMでCentOS6環境を構築。fabricを早速入れます。
1 2 |
[root@fabric ~]# easy_install fabric -bash: easy_install: コマンドが見つかりません |
入れれません。
easy_installなのでpythonから入れる必要がありましたね。
1 2 3 4 |
yum -y install python python-devel python-setuptools gcc easy_install pip pip install fabric==1.8.1 easy_install 'pycrypto==2.5' |
どうもpycryptoが悪さしているのかエラー連発。色々調べたのですが、取敢えず上記の順だったら自分の環境(CentOS6.5)で動作しました。
1 2 3 |
[root@fabric ~]# fab -V Fabric 1.8.1 Paramiko 1.15.2 |
fabfile.pyを作ろう
fabfile.pyはfabricでどのような操作を行うかの手順書です。ファイル名は別に「testfile.py」とか「hogehoge.py」なんかでもいいんですが、fabfile.pyにしておくとファイル名を引数で指定する必要がなくなります。
ではさっさくfabfile.pyに以下を書き込みます。
1 2 3 4 |
from fabric.api import sudo def install_git(): sudo("yum -y install git") |
これでgitをインストールできます。たったのこれだけです。
では、実際に実行してみましょう。
1 |
fab -u [ユーザ名] -i [sshの秘密鍵] -H [ホスト名] install_git |
以下でも実行できます。
1 |
fab -u root install_git |
細かい引数を入れないと対話式で色々聞かれます。今回はlocalhostにgitを導入してみましょう。
1 2 3 |
No hosts found. Please specify (single) host string for connection: localhost [localhost] sudo: yum -y install git [localhost] Login password for 'root': |
以上です。もっと細かいことを実施するにはpythonに詳しくならないと・・・。
冪等性なんかを気にし始めたらChef&Serverspecに脳みそ切り替えようね。
参考:
意外に苦戦した・・CentOS6.5上でのFabricのインストール手順
http://www.itkantan.com/fabric-install/