Ansible - 如何从多行列表生成命令?

时间:2018-04-01 15:49:59

标签: ansible

我有以下列表,从脚本输出生成。

 ['abc', 'abc-display-name']
 ['def', 'def-display-name']
 ['hij', 'hij-display-name']

我想在ansible中使用上面的输出来构造和执行以下命令

oc create project -n abc -d abc-display-name

我尝试使用以下内容,但它无效。

---
- hosts: localhost
  gather_facts: no
  tasks:
    - name: Executing the python script
      script: convert_to_list.py
      register: new_bu_list

    - name: Framing the oc commands
      shell: "oc create project -n {{item[0]}} -d {{item[1]}}"
      with_lines: "{{ new_bu_list.stdout_lines }}" 

不确定我在这里做错了什么。任何帮助将非常感激。

1 个答案:

答案 0 :(得分:0)

如果我没弄错,OpenShift命令oc的格式是:

oc new-project abc --display-name='abc-display-name'

如果convert_to_list.py的输出是这样的: abc abc-display-name def def-display-name hij hij-display-name

然后尝试使用: - name: Framing the oc commands shell: "oc new-project {{item.split(' ')[0]}} --display-name={{item.split(' ')[1]}}" with_items: "{{ new_bu_list.stdout_lines }}"