Ansible

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

docs.ansible.com より:

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

インストール

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

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

基本的な使い方

インベントリ

/etc/ansible/ansible.cfg のデフォルト設定では、/etc/ansible/hosts にインフラを定義します。3つのノードからなる小規模なクラスタを定義するインベントリの例:

/etc/ansible/hosts
[control]
192.168.12.1

[managed]
192.168.12.2
192.168.12.3

ファイルの中でノードごとに属性を割り当てることができます。詳しくは 公式ドキュメント を読んでください。

Ping

インベントリ内のノードが稼働しているか確認するには:

$ ansible all -m ping

Playbook

Playbook はインフラをデプロイ・設定するための強力なツールです。詳しくは 公式ドキュメント を読んでください。以下は全てのノードでシステムアップグレードを実行する例です。まず YAML 形式の playbook ファイルを作成します:

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

そして playbook スクリプトを実行:

# 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] にあります。

参照