我正在尝试使用 Ansible 剧本创建新用户和组。下面是我的文件夹结构。
\n\ntree\n.\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80 create-users.yaml\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80 ubuntu\nRun Code Online (Sandbox Code Playgroud)\n\ncreate-users.yaml剧本包含创建用户和组任务。请注意,我的目标计算机中没有任何组(admin_group)和用户(Rajini、Kamal),而是在运行剧本时创建它们。
---\n- name: Create Users & Groups\n hosts: target1\n gather_facts: false\n tasks:\n - name: Create Users Task\n user:\n name: "{{ item }}"\n state: present\n password: "{{ \'default_user_password\' | password_hash(\'sha512\',\'A512\') }}"\n shell: /bin/bash\n groups: "{{ admin_group }}"\n loop:\n - Rajini\n - Kamal\nRun Code Online (Sandbox Code Playgroud)\n\n我还有另一个文件叫ubuntu选择组名称和密码。运行剧本时,我收到以下错误。
ansible-playbook --vault-id @prompt create-users.yaml -K\nBECOME password:\nVault password (default):\n\nPLAY [Create Users & Groups] *****************************************************************************************************************************************************************\n\nTASK [Create Users Task] *********************************************************************************************************************************************************************\nfatal: [target1]: FAILED! => {"msg": "The task includes an option with an undefined variable. The error was: \'admin_group\' is undefined\\n\\nThe error appears to be in \'/home/osboxes/Ansible_Project/web_deployment/Ansible/groups_vars/create-users.yaml\': line 6, column 7, but may\\nbe elsewhere in the file depending on the exact syntax problem.\\n\\nThe offending line appears to be:\\n\\n tasks:\\n - name: Create Users Task\\n ^ here\\n"}\n\nPLAY RECAP ***********************************************************************************************************************************************************************************\ntarget1 : ok=0 changed=0 unreachable=0 failed=1 skipped=0 rescued=0 ignored=0\n\nRun Code Online (Sandbox Code Playgroud)\n\nadmin_group: admin\ndefault_user_password: Password1\nRun Code Online (Sandbox Code Playgroud)\n\n有人可以帮我解决这个问题吗?
\n\n在获得用户 Moon 的帮助后更新输出。
\n\nansible-playbook --vault-id @prompt create-users.yaml -K\nBECOME password:\nVault password (default):\n\nPLAY [Create Users & Groups] *****************************************************************************************************************************************************************\n\nTASK [Create Users Task] *********************************************************************************************************************************************************************\nchanged: [target1] => (item=Rajini)\nchanged: [target1] => (item=Kamal)\n\nPLAY RECAP ***********************************************************************************************************************************************************************************\ntarget1 : ok=1 changed=1 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0\n\nRun Code Online (Sandbox Code Playgroud)\n\nssh Kamal@192.168.0.1\nKamal@192.168.0.1\'s password:\nWelcome to Ubuntu 18.04.3 LTS (GNU/Linux 5.0.0-23-generic x86_64)\nKamal@Ansible_Target1:~$ id\nuid=1005(Kamal) gid=1001(admin) groups=1001(admin)\nRun Code Online (Sandbox Code Playgroud)\n
有几件事:
ubuntu文件中的变量,您需要在 playbook 中指定 vars 文件。default_user_password变量,请删除引号'admin作为用户主要组,请改用group属性。groups另一方面获取列表并将用户添加到列出的组中。并且,如果目标计算机上尚未创建组,则首先使用group module创建组。
经过上述更改后的 Playbook。
---
- name: Create Users & Groups
hosts: target1
gather_facts: false
vars_files: ubuntu
tasks:
- name: Create group
group:
name: "{{ admin_group }}"
state: present
- name: Create Users Task
user:
name: "{{ item }}"
state: present
password: "{{ default_user_password | password_hash('sha512','A512') }}"
shell: /bin/bash
group: "{{ admin_group }}"
loop:
- Rajini
- Kamal
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32434 次 |
| 最近记录: |