LoginSignup
1

More than 5 years have passed since last update.

ansibleの導入メモ2 プレイリストを作るまで

Last updated at Posted at 2018-06-01

目的

  • 前回作った環境で、実際に最小構成のplaybookが動くところまでを確認する
  • 基本的な実行パターンと、ログの見方を確認する

環境を作るまで
https://qiita.com/yukihigasi/items/e1da1f95e47c68d34ed7

インベントリファイルをデフォルト設定する

  • ansibleコマンドを実行する時、-i <インベントリファイル> で指定する必要があるが、設定ファイルに記載し省略することができる

  • ansible.cfgに、[defaults]項目を作り

  • hostfile = パス/インベントリファイル名 で定義できる
    スクリーンショット 2018-06-01 20.59.55.png

playbookの作成から実行までの手順

playbook

  • 実際に実行する内容を定義します
playbook.yml
---
- hosts: web
  sudo: yes
  tasks:
    - name: add a new user
      user: name=test1
  • hosts
    • 対象を指定します。今回は、インベントリファイルに定義したwebというホスト達を対象にしています
    • all という指定をして、インベントリファイルに記載のあるホスト全体をターゲットにすることもできる
    • まず全ノードに対する操作を定義し
    • そのあと個別の設定を適用する、という共通化ができる
--- <yamlであることを示すため必要
- hosts: all < 必須、対象を定義する
  sudo: yes <権限が必要な場合設定
  tasks:
    - name: add a new user <ここは任意の名前でOK、ログを見てタスク名がわかるように
      user: name=test1
- hosts: web
  sudo: yes
 tasks: 
    - name: install apach
      (その他操作)
- hosts: db
  sudo: yes
 tasks: 
    - name: install mysql  
     (その他操作)

実行結果の見方

  • チェックの実行

    • ansible-playbook playbook.yml --syntax-check playbook の文法をチェックする
    • ansible-playbook playbook.yml --list-task playbook のタスク一覧を表示
    • ansible-playbook playbook.yml --check 動作結果を確認(下例)実際には実行せず、想定結果を出力する

playbookコマンド
https://github.com/yteraoka/ansible-tutorial/wiki/ansible-playbook%20%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89

PLAY [web] *****************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************
ok: [192.168.10.11]

TASK [add user] ************************************************************************************************************************
changed: [192.168.10.11]

PLAY RECAP *****************************************************************************************************************************
192.168.10.11              : ok=2    changed=1    unreachable=0    failed=0
  • 実行
    • ansible-playbook playbook.yml を実行
PLAY [web] *****************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************
ok: [192.168.10.11]

TASK [add user] ************************************************************************************************************************
changed: [192.168.10.11]

PLAY RECAP *****************************************************************************************************************************
192.168.10.11              : ok=2    changed=1    unreachable=0    failed=0
  • 冪等性を確認
    • 同じプレイブックをもう一度実行
PLAY [web] *****************************************************************************************************************************

TASK [Gathering Facts] *****************************************************************************************************************
ok: [192.168.10.11]

TASK [add user] ************************************************************************************************************************
ok: [192.168.10.11]

PLAY RECAP *****************************************************************************************************************************
192.168.10.11              : ok=2    changed=0    unreachable=0    failed=0
  • changedの項目が0になっている。同じであるため変更されていないということ

公式ドキュメント

  • ここまでplaybookを実際に動かすまで。
  • 引き続き、よく使いそうな操作等をピックアップし、加筆予定。。。

まとめ ansibleを動作させるまで

どこでも 
┣ansible.cfg (作る)
┣hosts (作る:動作に必須のインベントリファイル)
┣playbook.yml 
└roles/ (作成される)
ansible.cfg
[defaults]
hostfile = ./hosts
hosts
[web]
192.168.10.11
playbook.yml
---
- hosts: web
  sudo: yes
  tasks:
    - name: add user
      user: name=test1
~/.ssh/ssh
HOST web
 HostName 192.168.10.11

参考

Ansible Tutorial
http://yteraoka.github.io/ansible-tutorial/
Ansibleの使い方
https://qiita.com/hana_shin/items/657a5cff495244465482

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1