中小環境ではなかなか使いにくいものになってしまった。
構成管理ツールの性質上多少はしかたのないものだけれど、
「クライアントいらず」「サーバーいらず」
必要なのはコードと実行環境のみというシンプルさから少し触ってみました。
1. はじめに
色々な構成管理ツールありますが、共通していえるのは
- 対象サーバにSSH接続できる必要がある。
- 対象サーバにPythonがインストールされている必要がある。
- コードを実行する環境にはAnsibleをインストールする必要がある。
これくらいですかね?
これが手軽な理由です。
構成管理するサーバを管理しなくてよいく、コードの作成に集中できます。
2.Ansible実行環境の準備
Ansibleのコードを実行する環境を準備します。
# yum install --enablerepo=epel ansible Dependencies Resolved ========================================================================================================================================================================== Package Arch Version Repository Size ========================================================================================================================================================================== Installing: ansible noarch 1.7-1.el6 epel 874 k Installing for dependencies: PyYAML x86_64 3.10-3.el6 epel 157 k libyaml x86_64 0.1.6-1.el6 epel 52 k python-babel noarch 0.9.4-5.1.el6 base 1.4 M python-crypto x86_64 2.0.1-22.el6 base 159 k python-crypto2.6 x86_64 2.6.1-1.el6 epel 530 k python-httplib2 noarch 0.7.7-1.el6 epel 70 k python-jinja2 x86_64 2.2.1-2.el6_5 updates 466 k python-keyczar noarch 0.71c-1.el6 epel 219 k python-paramiko noarch 1.7.5-2.1.el6 base 728 k python-pyasn1 noarch 0.0.12a-1.el6 base 70 k python-setuptools noarch 0.6.10-3.el6 base 336 k Transaction Summary ========================================================================================================================================================================== Install 12 Package(s) Total download size: 5.0 M Installed size: 25 M ~<省略>デーモンサービスやクライアントソフトでもなく本当にツールパッケージなので、
専用ユーザーが作成されたりはしません。
準備は以上で完了です。
さぁコーディングを行なっていきましょう。
3. Ansibleの操作
Ansibleのコードはプレイブックと呼ばれていますが、その前にインストールしたAnsibleの簡単な操作を。
サーバとの疎通確認
コードを作成し、実行する対象サーバとの疎通をおこなってみましょう。
操作を行ないたいサーバをリストに記述します。
# vim /etc/ansible/hosts [test-server] 10.0.0.100対象サーバにコマンドを実行してみます。
# ansible -i /etc/ansible/hosts 10.0.0.100 -k -c paramiko -m ping 10.0.0.100 | success >> { "changed": false, "ping": "pong" }成功すると、「success」が表示されます。
Pingとしていますが、実際はSSH接続していますので、SSH接続できる必要があります。
対象サーバ上でコマンドを実行させたい場合。
# ansible -i /etc/ansible/hosts 10.0.0.100 -k -c paramiko -a "hostname" 10.0.0.100 | success | rc=0 >> test-serverそのほかにもオプションが色々あります。
その他
プレイブック内のタスク一覧確認
# ansible-playbook -i hosts/production provisioning.yml --list-taskプレイブックの構文確認
# ansible-playbook -i hosts/production provisioning.yml --syntax-checkプレイブックのテスト実行
# ansible-playbook -i hosts/production provisioning.yml -u ssh_user -C -kSSH鍵を利用したプレイブックの実行
# ansible-playbook -i hosts/production provisioning.yml -u ssh_user --private-key=/path/id_rsaSUDOを利用したプレイブックの実行
# ansible-playbook -i hosts/production provisioning.yml -u ssh_user -s -k
次はプレイブックの作成です。
Lorin Hochstein
Oreilly & Associates Inc
Oreilly & Associates Inc
0 コメント:
コメントを投稿