LoginSignup
27
27

More than 5 years have passed since last update.

yum groupinstallで、with_itemsを使う時はダブルクォートの位置に注意する。

Last updated at Posted at 2014-07-31

@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   
27
27
3

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
27
27