Ansible

提供: ArchWiki
2017年8月3日 (木) 21:12時点におけるKusakata (トーク | 投稿記録)による版 (同期)
ナビゲーションに移動 検索に移動

docs.ansible.com より:

Ansible は IT 自動化ツールです。システムを設定し、ソフトウェアをデプロイして、継続的なデプロイや休止期間を挟まないローリングアップデートなど高度な IT 業務をオーケストラレートできます。

インストール

制御マシン (サーバーあるいはマスター) に ansible パッケージをインストールしてください。

自動デプロイや設定作業を適用したい管理マシン (クライアントあるいはスレーブ) には python2 (あるいは実験的な python) と openssh をインストールしてください。ssh 接続を正しく機能させるには ssh 鍵の設定が必要です。

基本的な使い方

インベントリ

According to the default settings in /etc/ansible/ansible.cfg, one can define its infrastructure in /etc/ansible/hosts. For instance, the following inventory defines a tiny cluster with three nodes:

/etc/ansible/hosts
[control]
192.168.12.1

[managed]
192.168.12.2
192.168.12.3

One can assign specific attributes to every node in the file. Check the official document for the details.

Ping

You may check if all the nodes listed in the inventory is alive by

$ ansible all -m ping

Playbook

Playbook serves as a powerful tool to deploy and configure the whole infrastructure. Check the official document for more details. Here is an extremely simple use case, only for demonstration purpose, where the administrator of above inventory want to perform a full system upgrade on all nodes. First, create a playbook file, in YAML format:

syu.yml
- hosts: control managed
  tasks:
          - name: full system upgrade
            script: /usr/bin/pacman -Syu

Then, run the playbook script:

# ansible-playbook syu.yml

Tips and tricks

Python の場所を Ansible に指定する

Ansible は管理対象のマシンに Python を必要とします。プレビューとして Python 3 がサポートされていますが [1]、全てのモジュールが機能するとは限りません。デフォルトでは Ansible はリモートシステム上の /usr/bin/python が 2.X あるいは 3.X バージョンの Python (特に 2.4 以上) だと想定しています。

使用するモジュールが Python 2 を必要とする場合、Ansible のインベントリファイルで ansible_python_interpreter 変数を設定して Python 2 の場所を Ansible に指定する必要があります。以下のようにホストグループを使って設定できます:

Inventory file
[archlinux]
server1
server2

[debian]
server3

[archlinux:vars]
ansible_python_interpreter=/usr/bin/python2

Python の設定に関する詳細は [2], [3], [4] にあります。

参照