Hello ansible


1.目的

Ansibleの触りを体験することが目的です。具体的には、EC2にAnsibleをインストールして、helloword的なことを実行して、初期動作確認を行います。

2.ansibleの嬉しいところ

  • 冪等性(べきとうせい)による構成情報の担保
  • Agent-less(Server側にSWは不要)  

その他Tips
・ Serverに対するアクセスはsshでアクセスする。
・ hostsファイルにアクセスするホストをグルーピングできる。
・ playbook(タスク書く設定ファイル)はyaml形式で設定を表現することができ表現が簡潔。
・ playbookからモジュール(よくある処理)を引用することができる。
・ RHEL純正のGUIツール(ansible tower)を用いることもできる(但し、有償)。
・冪等性(べきとうせい)は標準モジュールで作成したPlaybookのみOK

3.試したこと

  1. 環境をインストール

以下コマンドを実行して、ansible本体をインストールします。

sudo yum -y install python-devel openssl-devel gcc git
sudo easy_install pip
sudo pip install ansible

ansible --versionを実行して、バージョンが表示されればインストール完了となります。

 ansible --version
ansible 2.9.4
  config file = None
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.16 (default, Dec 12 2019, 23:58:22) [GCC 7.3.1 20180712 (Red Hat 7.3.1-6)]
  1. 以下(/etc/ansible/tasks配下)にtest.ymlを作成。  
├── ansible.cfg
├── hosts
├── roles
└── tasks
    └── test1.yml

③test.ymlの中身

- hosts: localhost
  tasks:
  - name: touch text file
    shell: touch test.txt

④test.ymlの実行(local hostにtest.txtを作成)

sudo ansible-playbook test1.yml

⑤実行結果(text fileを作成できました)

├── ansible.cfg
├── hosts
├── roles
└── tasks
    ├── test1.yml
    └── test.txt

以上

4.Link

・ansibleとは
https://qiita.com/Brutus/items/1894629105d61f4854bc

・シェルスクリプトとの差分、他の構成管理ツールではなくAnsibleの理由
https://qiita.com/dhiki1234/items/e2d3a092dfb11361a49b

・Ciscoの拡張モジュール
https://gblogs.cisco.com/jp/2016/11/ansible-ios-related/

・GUI(Ansible Tower)について
https://docs.ansible.com/ansible-tower/

・冪等性が担保できる範囲について
https://dev.classmethod.jp/server-side/ansible/ansible_playbook_with_idempotence/

・よく使用する標準モジュールのまとめ
https://dev.classmethod.jp/server-side/ansible/ansible-my-reference/