中小環境ではなかなか使いにくいものになってしまった。
構成管理ツールの性質上多少はしかたのないものだけれど、
「クライアントいらず」「サーバーいらず」
必要なのはコードと実行環境のみというシンプルさから少し触ってみました。
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成功すると、「success」が表示されます。
10.0.0.100 | success >> {
"changed": false,
"ping": "pong"
}
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 コメント:
コメントを投稿