logo-sm

お問い合わせは Webフォームから

ブログ

Ansibleでhost_varsなどに書かれた変数をwith_itemsで取得する方法

2016.02.12

こんにちにわ。アウルキャンプ永野です。

弊社ではAnsibleでの自動構築を推進しています。
Ansibleは楽ですね。
Ansibleも2.0になったりRedhatに買収されたりしたことで
Chefより伸びるんではないか?!
と密かに期待をしております。

早速ですが以下のようなことをしたい場合は
host_varsに変数を書いてループさせたい時ってありますよね?
自分はありました。

server1の自動起動させたいサービス

httpdpostfix

server2の自動起動させたいサービス

httpdpostfixmysql

その場合は以下のように記載すると幸せになれました!

host_vars/server1.yml

server1用のservice_on配列を作成します。

service_on:
  - httpd
  - postfix

host_vars/server2.yml

こちらも同様にserver2用のservice_on配列を作成します。

service_on:
  - httpd
  - iptables
  - mysql

owlcamp/service_on/tasks/main.yml

- name: "service start"
  name: "{{ item }}"
  state: started
    enabled: yes
  with_items: service_on
  become: yes

ミソとしては

nameに記載されている{{ item }}には
忘れずにダブルコーテションで閉じること
これを閉じてしまうとエラーになってしまいます。
これを知っているだけでも色々な応用が可能になり
Ansibleのベストプラクティスに則ったディレクトリ構成が使いやすくなります。
結構ハマると見つかりづらいのでしっかりと覚えておきたいところです。

関連記事

  • 自宅に構築!仮想環境 ~BIG-IP VE導入編~
    【導入】 前回は、自宅サーバにProxmoxを導入しました。 今回はその上に仮想マシンとしてBIG-IP VE […]

    2024.09.30

  • 自宅に構築!仮想環境 ~Proxmox導入編~
    【導入】 以前から学習用に自宅仮想環境をつくりたく思っていたところ、BIG-IP(の仮想版)に触れる必要が出て […]

    2024.09.30

  • WindowsのWSL2上のDockerでup時に’ContainerConfig’のエラーが出た。
    当社の開発環境はMacとWindowsが混在したDocker上での開発を行っています。なのでMacでOKだけど […]

    2024.04.08

  • パートナー

  • 人材育成・採用情報