2015年1月7日水曜日

Amsible 初心者

Chefがある程度規模のある環境向けであるため、
中小環境ではなかなか使いにくいものになってしまった。

構成管理ツールの性質上多少はしかたのないものだけれど、
「クライアントいらず」「サーバーいらず」
必要なのはコードと実行環境のみというシンプルさから少し触ってみました。

1. はじめに


色々な構成管理ツールありますが、共通していえるのは
  • 対象サーバにSSH接続できる必要がある。
  • 対象サーバにPythonがインストールされている必要がある。
  • コードを実行する環境にはAnsibleをインストールする必要がある。
これくらいですかね?
これが手軽な理由です。
構成管理するサーバを管理しなくてよいく、コードの作成に集中できます。


2.Ansible実行環境の準備


Ansibleのコードを実行する環境を準備します。
パッケージをインストールします。
Ansible インストール

本サイトに行けばソースからも配布されていますが、EPELレポジトリでもRPMが配布されていますので、
EPELからインストールします。


# 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 -k
SSH鍵を利用したプレイブックの実行
# ansible-playbook -i hosts/production provisioning.yml -u ssh_user --private-key=/path/id_rsa
SUDOを利用したプレイブックの実行
# ansible-playbook -i hosts/production provisioning.yml -u ssh_user -s -k

次はプレイブックの作成です。

Ansible: Up and Running
Ansible: Up and Running
posted with amazlet at 15.01.02
Lorin Hochstein
Oreilly & Associates Inc

0 コメント:

コメントを投稿