Mảng liên kết trong vở kịch Ansible


9

Tôi đang cố gắng thêm người dùng vào máy chủ của mình bằng Ansible. Mỗi người dùng có một mật khẩu được mã hóa khác nhau.

Tôi có một cái gì đó như thế:

vars:
  users:
    - myuser1
    - myuser2
  password: encryptedpasswordhere

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

Điều này làm việc tuyệt vời, nhưng tất cả người dùng có cùng một mật khẩu.

Tôi đang tìm cách để tạo ra một mảng kết hợp. Trong PHP tôi sẽ làm điều đó:

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

Có một cách để làm điều đó trong một vở kịch Ansible?

Câu trả lời:


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 Là một nhà phát triển PHP đồng nghiệp, tôi không biết rằng hầu hết các ngôn ngữ khác gọi là "mảng kết hợp" của chúng tôi là "băm". Giúp với Google!
ceejayoz

1
@ceejayoz "băm" hoặc "dict".
tedder42
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.