文章目录
批量添加用户
添加用户,不设置密码的形式
- 编辑.yml文件
[devops@server1 ansible]$ touch createuser.yml
[devops@server1 ansible]$ vim createuser.yml
---
- hosts: test
tasks:
- name: create user
user:
name: "{{ item }}" #循环 添加user1~3
state: present
loop:
- user1
- user2
- user3
- 执行
[devops@server1 ansible]$ ansible-playbook createuser.yml
- 在server2主机查看
[root@server2 ~]# cat /etc/shadow
设置密码,但是密码为明文形式
密码为明文形式,不安全。
方法一:全部写入createuser.yml文件中。
[devops@server1 ansible]$ vim createuser.yml
---
- hosts: test
tasks:
- name: create user
user:
name: "{{ item.user }}"
password: "{{ 'item.pass' | password_hash('sha512') }}" #采用哈希加密
state: present
loop:
- { user: user1, pass: 123}
- { user: user2, pass: 456}
- { user: user3, pass: 789}
执行:
[devops@server1 ansible]$ ansible-playbook createuser.yml
[root@server2 ~]# cat /etc/shadow
- 方法一的用户名与密码的键值对和创建用户的任务都写入同一个文件中,当要创建的用户很多时不易于我们检查,所以我们在生产环境中习惯将两者分开写,分别写入.yml文件中。
方法二:将要添加的用户和要执行的任务分开写:
- 编辑存放用户名和密码的.yml文件
[devops@server1 ansible]$ vim userlist.yml
---
userlist:
- user: user1
pass: 123
- user: user2
pass: 456
- user: user3
pass: 789
- 编辑创建用户的.yml文件
[devops@server1 ansible]$ vim createuser.yml
---
- hosts: test
vars_files:
- userlist.yml #用户名和密码的文件,在同一个目录下
tasks:
- name: create user
user:
name: "{{ item.user }}"
password: "{{ 'item.pass' | password_hash('sha512') }}"
state: present
loop: "{{ userlist }}"
执行:
[devops@server1 ansible]$ ansible-playbook createuser.yml
- 这种方式创建用户用户的密码为明文形式,对用户来说不安全,
设置密码,且密码为密文形式
- 查看ansible加密模块的用法
[devops@server1 ansible]$ ansible-vault
Usage: ansible-vault [create|decrypt|edit|encrypt|encrypt_string|rekey|view] [options] [vaultfile.yml] 加密 编辑 查看 为几个常用的方法
- 编辑用户和密码.yml文件
[devops@server1 ansible]$ vim userlist.yml
---
userlist:
- user: user1
pass: '123'
- user: user2
pass: '456'
- user: user3
pass: '789' #密码都引起来,字符串
- 编辑创建用户的.yml文件
[devops@server1 ansible]$ vim createuser.yml
---
- hosts: test
vars_files:
- userlist.yml
tasks:
- name: create user
user:
name: "{{ item.user }}"
password: "{{ item.pass | password_hash('sha512') }}" #不引
state: present
loop: "{{ userlist }}"
- 对存放用户名和密码的.yml文件进行加密,并输入密码:
[devops@server1 ansible]$ ansible-vault encrypt userlist.yml
[devops@server1 ansible]$ cat userlist.ym
- 我们输入密码后可以查看文件内容:
[devops@server1 ansible]$ ansible-vault view userlist.yml
- 编辑文件内容,用edit参数:
[devops@server1 ansible]$ ansible-vault edit userlist.yml
---
userlist:
- user: user1
pass: '123'
- user: user2
pass: '456'
- user: user3
pass: '789'
- user: user4 #加入
pass: 'westos'
[devops@server1 ansible]$ ansible-vault view userlist.yml
- 使用加密的方式创建用户。
[devops@server1 ansible]$ ansible-playbook createuser.yml --ask-vault-pass
- 执行成功,在目标主机server2查看,发现密码已经是加密过的:
[root@server2 ~]# cat /etc/shadow
- 可以ssh远程连接,也可以切换su
[devops@server1 ansible]$ ssh user1@server2
[user1@server2 ~]$ su - user4
原文地址:https://blog.csdn.net/even160941/article/details/99295680
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。