Ansible
公式サイト
Ansibleとは
- OSSの構成管理システム
- シンプルな構造
Ansibleの環境構築
- Ansible2.7:2019/01/25時点に更新
管理ホスト
- OS:Linux, Mac
Python 2.6+ (Python 3.x is not supported)- Python 2.7 or Python 3.5+
被管理ホスト
- OS:Linux, Mac, Windows
Python 2.5+ (Python 3.x is not supported)
(2.4 + python-simplejson)- Python 2.6+ or Python 3.5+
Ansibleの構成要素
インベントリ (inventory)
- 被管理ホストへの接続情報を記述するファイル
- グループ管理も出来る
hosts
[web]
www.example.com ansible_user=demo1 ansible_ssh_pass=p@ssw0rd1
www.example.net ansible_user=demo2 ansible_ssh_pass=p@ssw0rd2
パラメータ | 意味 | デフォルト |
---|---|---|
ansible_host | エイリアス | |
ansible_port | SSH接続先のポート | 22 |
ansible_ssh_private_key_file | 秘密鍵のファイルパス | |
ansible_become_pass | sudoを実行する際のパスワード | |
ansible_python_interpreter | 被管理ホストのPythonのパス | /usr/bin/Python |
モジュール (module)
- ユーザを追加するなどの冪等性を持った操作
ansibleコマンドの実行
ansible -i {イベントファイルのパス} {対象ホスト} -m {モジュール名}
ansible -i hosts all -m ping
パラメータ | 意味 | デフォルト |
---|---|---|
--user ユーザ名 | 被管理ホストでコマンドを実行するユーザ | ansible_user > ansibleコマンドを実行したユーザ |
--ask-pass | SSH接続時にパスワードを要求 | ansible_ssh_pass |
--become | モジュールをsudoで実行 | - |
--ask-become-pass | sudoで実行するためのパスワードを要求 | ansible_become_pass |
プレイブック (playbook)
- DBサーバを作るなどの目的の為にモジュールを組み合わせて作った手順書
- YAML形式で記述
pb1.yml
- hosts: all
become: yes
become_user: root
tasks:
- user: name=demo
- copy: src=/home/hoge/fuga.txt dest=/home/demo/
プレイブックの実行
ansible-playbook -i hosts pb1.yml
その他
- 下書きが一杯になったので、とりあえず(中途半端な内容ですが、、、)投稿します。