私は Ansible を学ぼうとしており、Github で見つけたいくつかのロール、具体的には sudo ルールと SSH キーのデプロイメントとともにユーザーの作成を自動化するロールを試しています。
https://github.com/GROG/ansible-role-management-user
依存関係にある 4 つのロールをすべて複製し、それを使用してテスト サーバーに 2 人以上の管理ユーザーを作成しようとしています。追加するユーザーをさらにリストする方法がわかりません。
- 管理ロールの defaults/main.yml ファイルを使用して、management_user_settings の下にさらにユーザーをリストすると、ユーザーは作成されますが、SSH キーはデプロイされません。ユーザーが 1 人だけの場合は、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
質問:「この役割を持つ管理ユーザーをさらに追加する方法についての簡単な答えはありますか?」
A: はい。リストを追加できます。例えば
- 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"
]