2
私はさまざまなモジュールのコード行を減らす方法を試しています。スタンザを繰り返すことは意味がないようです。私は空白を埋めるのを助けるためにcsvfileルックアップを使いたいと思います。たとえば、次のCSVを考えてみましょう。アシスタント - csvfileルックアップで{{item}}を使用
# groups.csv
# name, gid [optional - leave blank], state [present|absent], system [yes|no]
accounts,502,present,no
engineering,504,present,no
したがって、すべてのグループ定義はCSV形式です。問題は、私が試しても問題を処理しています。グループモジュール内で検索を行うことができません。あなたがコードから見ることができるように
TASK [Process groups] **********************************************************
/bin/sh: accounts: command not found
fatal: [localhost]: FAILED! => {"failed": true, "msg": "lookup_plugin.lines(accounts) returned 127"}
が、私もwith_itemsとwith_lines使用を使用して試してみた:
---
- hosts: localhost
become: True
become_user: root
tasks:
- name: get groups
command: /usr/bin/awk -F',' '!/^#/ && !/^$/ { print $1 }' groups.csv
register: groups_out
- debug: var=groups_out.stdout_lines
- name: Process groups
group: >
name="{{ lookup('csvfile', 'item file=groups.csv col=0') }}"
gid="{{ lookup('csvfile', 'item file=groups.csv col=1') }}"
state="{{ lookup('csvfile', 'item file=groups.csv col=2') }}"
system="{{ lookup('csvfile', 'item file=groups.csv col=3') }}"
# with_lines: "/usr/bin/awk -F',' '!/^#/ && !/^$/ { print $1 }' groups.csv"
# with_items: "{{ groups_out.stdout_lines }}"
with_lines: "{{ groups_out.stdout_lines }}"
その結果がこれです: だから最初は、私はこれをやってみたかったですawkコマンドを直接実行することができますが、グループモジュールは私にこれをやってもらえません。
Ansible 2.1.1.0私はこれを達成する方法を任意のアイデア
神社2.8 2.7.5 Pythonの 7 CentOSに上?予め
おかげで、
R以下
何「/var/tmp/ansible.csv」ファイルのパーミッションであり、どのようなユーザーとのジャイブは「ansible」または「ansible・脚本」またはコマンドがされているものをユーザーに実行されていることを行いますとして実行? –
それは事です - /var/tmp/ansible.csvというファイルはありません。/var/tmpは私のcwdです。 – Rowley
'item + 'file -...を' 'item file = ...''に変更しました。 – Rowley