2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Ansible メモ

Last updated at Posted at 2015-10-27

参考サイト

[実践!Ansibleベストプラクティス(前編)][sakura1]
[sakura1]: https://knowledge.sakura.ad.jp/3084/

[実践!Ansibleベストプラクティス(後編)][sakura2]
[sakura2]: https://knowledge.sakura.ad.jp/3086/

[Ansible の Role を Ansible Galaxy に登録し再利用][qiita1]
[qiita1]: https://qiita.com/kouji-kojima/items/2525ea87952d4039bad7

Ansible 利用時の懸念と対応(未完)

  • ssh 接続ができる必要がある.
  • ssh 接続時のパスワードについて :: 入力不要にする or 入力する or 補助ツールを利用する
  • 接続先で管理者権限でコマンド等を実行できる必要がある :: sudo 等を利用する
  • 接続先で sudo を利用する場合 :: 入力不要にする or 入力する or 補助ツールを利用する

with_items を使うときの注意

参照する item はループの中になる。

  • 間違い
- debug:
    msg: "{{ item }}"
    with_items: "{{ message_list }}"
  • 正しい
- debug:
    msg: "{{ item }}"
  with_items: "{{ message_list }}"

playbook を個別ホストで実行する。

-l オプションを使う

% ansible-playbook -i ~/ansible_hosts -l taget_host test.yml

playbook の確認

--list-hosts, --list-tasks, --check オプション

% ansible-playbook -i ~/ansible_hosts --list-hosts --list-tasks --check test.yml

定義されている変数を確認する

ansible -i hosts -m debug -a "var=hostvars" all
ansible -i hosts -m debug -a "var=hostvars['localhost']" all

デバッグメッセージを -v オプションで on/off する

- debug:
   msg: "This only displays with ansible-playbook -vv+"
   verbosity: 2

初回接続時の ssh host キー確認を無視する。

$HOME/.ansible.cfg に下記設定を追加する。

[defaults]
host_key_checking = False

ディストリビューション、バージョン毎の設定

Best Practice から

host: all
  tasks:
    - name: group by distribution and version
      group_by: key="{{ ansible_distribution }}_{{ ansible_distribution_version }}"

host: Ubuntu_14*
 ......

個人的にはこっちの方がわかりやすいけど、どうだろう。

when: ansible_distribution == 'Ubuntu' and ansible_distribution_release == 'precise'

Deployment Management でやりたいこと。

  • 同じことを繰り返したくない。
  • 何度行っても同じ構成になるようにしたい。(設定ミスの排除含む)

必要な機能

  • すべてのホストで共通の設定(すべてってなんだ)
  • OS別の共通設定(Windows, Linux のバージョン、ディストリビューション毎の共通設定)
  • 役割毎の設定(Web、DBなどなど)
  • 地域別の設定(タイムゾーン、NTPサーバ、リポジトリサーバなど距離が関係するもの)
  • その他、自分で考えたグループ(思いつかない、DMZ に配置した Web サーバとか役割と地域で識別できる?)
  • ホスト毎の個別設定(ホスト名、IPアドレス、IP は DHCP か?)
  • 安定していて、学習コストが低い(本質ではない。大事なのは設定の中身)

その他

構成管理ツール Configuration Management tool というより、Deployment Management tool の方が自分にはしっくりくる。

2
1
0

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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?