Асоціативний масив у програмі "Ansible playbook"


9

Я намагаюся додати користувачів до своїх серверів за допомогою Ansible. У кожного користувача є інший зашифрований пароль.

У мене є щось таке:

vars:
  users:
    - myuser1
    - myuser2
  password: encryptedpasswordhere

tasks:
  - name: Creating users
    user: name={{ item }} password={{ password }} groups=sudo,adm shell=/bin/bash
    with_items: users

Це чудово працює, але всі користувачі мають однаковий пароль.

Я хочу зробити асоціативний масив. У PHP я би зробив це:

$users = array('user'=>'myuser1', 'password'=>'encryptedpass1',
               'user'=>'myuser2', 'password'=>'encryptedpass2',
               );

Є спосіб це зробити в ігровій книзі Ansible?

Відповіді:


15

http://docs.ansible.com/playbooks_loops.html#looping-over-hashes

---
users:
  alice:
    name: Alice Appleworth
    telephone: 123-456-7890
  bob:
    name: Bob Bananarama
    telephone: 987-654-3210

і

tasks:
  - name: Print phone records
    debug: msg="User {{ item.key }} is {{ item.value.name }} ({{ item.value.telephone }})"
    with_dict: users

@Francis Як співрозмовник PHP, я не знав, що більшість інших мов називає наші "асоціативні масиви" "хешами". Допомагає при гуглінгу!
ceejayoz

1
@ceejayoz "хеш" або "диктант".
tedder42
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.