2015/01/07

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 コメント:

コメントを投稿