Ansible: Authorized_keys opsi "eksklusif" gagal dengan with_subelements

Dibuat pada 3 Jun 2015  ·  3Komentar  ·  Sumber: ansible/ansible

Ketika saya melakukan hal berikut di 1.9.1, itu memperlakukan setiap _individu_ kunci per pengguna sebagai eksklusif, bukan _grup_ kunci per pengguna sebagai eksklusif. Akibatnya, hanya kunci per pengguna yang ditentukan terakhir yang dapat digunakan.

- name: sync all users keys
  authorized_key: user={{item.0.name}} key='{{item.1}}' state=present exclusive=yes
  with_subelements:
    - users
    - keys

Komentar yang paling membantu

Saya telah memecahkan ini dengan langkah perantara. Seperti begitu

# Read each file and split by newline, allowing for multiple keys per file
- name: Assemble keys
  set_fact:
    key_item: "{{ lookup('file', role_path + '/files/' + item).split('\n') }}"
  with_items:
    - bob.pub
    - fred.pub
    - barney.pub
  register: keys

# Select each key, joining it again and join all keys. Internally the ansible
# module will then split the string by newline and work at each one. This is
# the only way exclusive works with a list of keys.
- name: Distribute operations ssh-keys to root
  authorized_key:
    key        : "{{ keys.results|selectattr('ansible_facts','defined')|map(attribute='ansible_facts.key_item')|map('join', '\n')|join('\n') }}"
    manage_dir : yes
    state      : present
    user       : root
    exclusive  : yes

Semua 3 komentar

yang diharapkan, Anda menjalankan modul X beberapa kali, setiap kali dengan eksklusif (X == jumlah item).

Kemungkinan Kesalahpahaman

Hai!

Terima kasih banyak atas kiriman Anda ke Ansible. Ini dengan tulus sangat berarti bagi kami.

Kami yakin tiket yang Anda ajukan agak disalahpahami, karena satu hal bekerja sedikit berbeda dari yang dinyatakan.

Di masa mendatang, ini mungkin topik yang lebih cocok untuk daftar pengguna, yang juga dapat Anda posting di sini jika Anda menginginkan bantuan lebih lanjut terkait hal di atas.

Terima kasih sekali lagi untuk ini dan minat Anda pada Ansible!

Saya telah memecahkan ini dengan langkah perantara. Seperti begitu

# Read each file and split by newline, allowing for multiple keys per file
- name: Assemble keys
  set_fact:
    key_item: "{{ lookup('file', role_path + '/files/' + item).split('\n') }}"
  with_items:
    - bob.pub
    - fred.pub
    - barney.pub
  register: keys

# Select each key, joining it again and join all keys. Internally the ansible
# module will then split the string by newline and work at each one. This is
# the only way exclusive works with a list of keys.
- name: Distribute operations ssh-keys to root
  authorized_key:
    key        : "{{ keys.results|selectattr('ansible_facts','defined')|map(attribute='ansible_facts.key_item')|map('join', '\n')|join('\n') }}"
    manage_dir : yes
    state      : present
    user       : root
    exclusive  : yes
Apakah halaman ini membantu?
0 / 5 - 0 peringkat