
저는 Ansible을 배우려고 노력 중이며 Github에서 찾은 몇 가지 역할, 특히 sudo 규칙 및 SSH 키 배포와 함께 사용자 생성을 자동화하는 역할을 사용해 보았습니다.
https://github.com/GROG/ansible-role-management-user
종속된 네 가지 역할을 모두 복제했으며 이를 사용하여 테스트 서버에서 두 명 이상의 관리 사용자를 만들려고 합니다. 추가할 사용자를 더 나열하는 방법을 이해하는 데 문제가 있습니다.
- 관리 역할의 defaults/main.yml 파일을 사용하여 Management_user_settings 아래에 더 많은 사용자를 나열하면 사용자가 생성되지만 해당 SSH 키는 배포되지 않습니다. 사용자가 한 명뿐이면 배포됩니다.
management_user_settings:
- name: usr1
state: present
comment: user1 mykiy
shell: '/bin/bash'
authorized_keys:
- key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
exclusive: no
sudo:
hosts: ALL
as: ALL
commands: ALL
nopasswd: yes
- name: usr2
comment: user2 otherkiy
shell: '/bin/bash'
authorized_keys:
- key: "{{ lookup('file', '/home/user/SSH/user.name/id_rsa.pub') }}"
exclusive: no
sudo:
hosts: ALL
as: ORACLE
commands: ALL
nopasswd: yes
이 역할에 대한 플레이북에 변수를 나열하려고 했지만 동일한 문제가 발생했습니다. 사용자가 생성되지만 해당 SSH 키가 배포되지 않습니다.
또한 변수가 포함된 목록을 만들고 with_items: 명령을 사용하려고 시도했지만 제대로 작동하지 않습니다.
---
- hosts: all
user: root
vars:
user_list:
name: "{{ item.name }}"
comment: "{{ item.comment }}"
shell: '/bin/bash'
uid: "{{ item.uid }}"
groups: "{{ item.groups }}"
password: "{{ item.password }}"
state: "{{ item.state }}"
authorized_keys:
- key: "{{ item.key }}"
sudo: "{{ item.sudo }}"
management_user_key: "{{ lookup('file', '~/.ssh/id_rsa.pub') }}"
management_user_settings:
- "{{ user_list }}"
management_user_list:
- "{{ management_user_settings }}"
management_user_list_host: []
management_user_list_group: []
sudo_root:
hosts: ALL
as: ALL
commands: ALL
nopasswd: yes
sudo_oracle:
hosts: ALL
as: ORACLE
commands: ALL
nopasswd: yes
roles:
- role: user-role-management
with_items:
- { name: abc1, comment: "a user", uid: 1300, password: somepw, state: present, key: "{{ lookup('file', '/home/user/SSH/user.name/id_rsa.pub') }}", sudo: "{{ sudo.root }}" }
- { name: abc2, comment: "b user", state: present, key: "{{ management_user_key }}", sudo: "{{ sudo.oracle }}" }
이 역할에 더 많은 관리 사용자를 추가하는 방법에 대한 간단한 대답이 있습니까?
답변1
큐:"이 역할에 더 많은 관리 사용자를 추가하는 방법에 대한 간단한 대답이 있습니까?"
답: 그렇습니다. 목록을 추가할 수 있습니다. 예를 들어
- hosts: localhost
vars:
my_list: [a, b, c]
list1: [x, y]
tasks:
- set_fact:
my_list: "{{ my_list + list1 }}"
- debug:
var: my_list
준다
"my_list": [
"a",
"b",
"c",
"x",
"y"
]