Я импортирую роль usercreate в роль приложения с целью установки пользователя приложения только из роли usercreate. У меня проблемы с ограничением роли usercreate только для создания пользователя приложения. при импорте он запускает всех общих пользователей, определенных в / vars / users.yml.
дерево:
└── roles
├── application-role
| └── tasks
| ├── main.yml
| └── application.yml
└── common
├── defaults
│ └── main.yml
├── tasks
│ ├── main.yml
│ └── usercreation.yml
└── vars
├── main.yml
└── users.yml
задача приложения:
- name: create applicationuser from commonrole
become: yes
include_role:
name: common
tasks_from: usercreation.yml
vars_from: users.yml
public: yes
apply:
tags: present-test
vars:
username: applicationuser
tags: usertest1
и обычная задача usercreate:
- include_vars: users.yml
tags: present-test
- name: Create users
become: yes
user:
name: "{{ item.username }}"
shell: "{{ item.shell }}"
groups: "{{ item.groups }}"
createhome: yes
comment: "{{ item.comment }}"
password: "{{ item.OSpass }}"
uid: "{{ item.uid }}"
state: "{{ item.status }}"
with_items:
"{{ users }}"
tags: present-test
и, наконец, users.yml
users:
- username: applicationuser
comment: "ansible test user 2 "
shell: "/bin/bash"
profile: prod
uid: "599"
dev: no
key: "ssh-rsa AAAAAxxXXxxXX666666666XX66X"
groups: "wheel"
OSpass: "$6$9rywWxjz4XFDxQ2H$mb1qvD1dGe.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxHSrcwfCmqa438WqEqg/eV/IY3KjRjBty56spCOUsxfNH/"
status: present
- username: otheruser
...
при запуске он создает всех пользователей в vars / users.yml, полностью игнорируя мои vars: ограничение
Я хотел бы создать только applicationuser.
Это выполнимо?
Вы определили свое «имя пользователя», но на самом деле ничего не делаете с этой переменной.
Возможно, вы намеревались добавить «когда» или что-то в этом роде? Возможно, что-то вроде этого?
- name: Create users
become: yes
user:
name: "{{ item.username }}"
shell: "{{ item.shell }}"
groups: "{{ item.groups }}"
createhome: yes
comment: "{{ item.comment }}"
password: "{{ item.OSpass }}"
uid: "{{ item.uid }}"
state: "{{ item.status }}"
with_items:
"{{ users }}"
tags: present-test
when: username == item.username