Вы не можете вызывать несколько модулей в одной задаче, вам нужно разделить каждый вызов в своей задаче, как сообщается в сообщении об ошибке.
Я понимаю, почему вы пытались это сделать: использовать одну и ту же петлю для нескольких задач. К сожалению, это невозможно. Вы можете переместить ваш набор задач в отдельный файл и включить его в цикл, если вам действительно нужно выполнить цикл по значительному количеству задач. Это на самом деле не требуется в вашей ситуации, потому что:
- у вас есть только две задачи
- вы можете сжать цикл, используя объявленную переменную для повторного использования
- и, самое главное, потому что вам не нужно ваше второе задание
Фактически, пользовательский модуль возвращает uid пользователя, которого он создал или который существует в его результате. Вам просто нужно зарегистрировать результат вызова модуля user
.
Просто попробуйте следующее для вашей второй игры:
- name: Resgister application users
hosts: app
vars:
user_list:
- newuser1
- newuser2
- newuser3
tasks:
- name: Create the users if they don't exist
user:
name: "{{ item }}"
state: present
shell: "/bin/bash"
password: "$6$mysecretsalt$qyctTVhRMS1ZSnCuzQNAM8Y7V/yqSEnyRbal0IYXSqSEVKkXF8ZmXBZoRIaN/PvzE/msq8iOJO830OOCG89va/"
update_password: always
groups: santosh
register: create_users
loop: "{{ user_list }}"
- name: Show ids of users
debug:
msg: "The uid of user {{ item.name }} is: {{ item.uid }}"
loop: "{{ create_users.results }}"
И как примечание: для первой игры сделайте себе одолжение и прекратите использовать старый синтаксис local_action
в пользу delegate_to: localhost
для задачи. Это даже не требуется в вашем случае, так как вы уже настраиваете свою игру только на localhost.