Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What is going on with this article?
@yukihigasi

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

More than 1 year has passed since last update.

目的

  • 前回作った環境で、実際に最小構成の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

1
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
1
Help us understand the problem. What is going on with this article?