@kun432さんからのコメントにありますが、この記事はyumのgroup-nameを使用した場合に発生します。group-idを使用した場合にはスペースが含まれないので発生しません。
with_itemsのリスト内に書くグループ名にスペースが含まれると動かないことがあるので、ダブルクォートの位置に注意する必要があります。
実行環境
$ ansible --version
ansible 1.6.8 (release1.6.8 5a4f39bfbf) last updated 2014/07/30 23:46:08 (GMT +900)
対象環境
CentOS 6.4 64bit (virtualbox + vagrantで構築)
#CentOS上でやりたいコード
yum groupinstall "Virtualization Client" "Virtualization Platform" "Virtualization Tools"
NGな書き方
---
- hosts: server
user: root
tasks:
- name: yum group-install
yum: name={{ item }} state=present
with_items:
- "@Virtualization Client"
- "@Virtualization Platform"
NGな書き方の実行結果
$ ansible-playbook yum.yml -i hosts
PLAY [server] *****************************************************************
GATHERING FACTS ***************************************************************
ok: [192.168.0.135]
TASK: [yum group-install] *****************************************************
failed: [192.168.0.135] => (item=@Virtualization Client,@Virtualization Platform) => {"failed": true, "item": "@Virtualization Client,@Virtualization Platform"}
msg: this module requires key=value arguments (['name=@Virtualization', 'Client,@Virtualization', 'Platform', 'state=present'])
FATAL: all hosts have already failed -- aborting
PLAY RECAP ********************************************************************
to retry, use: --limit @/Users/Adr/yum.retry
192.168.0.135 : ok=1 changed=0 unreachable=0 failed=1
スペースの部分で区切られてしまい、実行できません。
#OKな書き方
{{ item }}
をダブルクォートで囲んであげればOKです。
---
- hosts: server
user: root
tasks:
- name: yum group-install
yum: name="{{ item }}" state=present
with_items:
- "@Virtualization Client"
- "@Virtualization Platform"
OKな書き方の実行結果
$ ansible-playbook yum.yml -i hosts
PLAY [server] *****************************************************************
GATHERING FACTS ***************************************************************
ok: [192.168.0.135]
TASK: [yum group-install] *****************************************************
changed: [192.168.0.135] => (item=@Virtualization Client,@Virtualization Platform)
PLAY RECAP ********************************************************************
192.168.0.135 : ok=2 changed=1 unreachable=0 failed=0