版权声明:本文为博主原创文章,转载请标记转载地址,谢谢 https://blog.csdn.net/qq_26707177/article/details/83857618
目录
背景:管理了60台左右服务器,每个服务器都有相同的用户,一个一个的设置过于麻烦,就通过ansible批量的添加用户,修改密码,使用ansible-playbook进行免密登陆。前提是root用户已经完成了免密登陆的设置
安装ansible
yum install epel-release
yum install ansible -y
主机目录配置文件位置:/etc/ansible/hosts
新增加3个普通用户:
websvr_user,websvr_publisher,gamesvr_user
更改服务器的用户名(没有就添加)
ansible your_hosts -m user -a 'name=your_user shell=/bin/bash home=/home/your_user/ state=present'
your_hosts:对应的是/etc/ansible/hosts中需要设置的组
your_user:对应的是服务器要添加的用户,可以是已存在的
state=present:代表添加
更改服务器的密码,由于不支持明文的密码,所以需要先转换一下
生成加密密码
python -c 'import crypt; print (crypt.crypt("your_passwd","your_user"))'
your_passwd:修改为你要设置的账号密码
your_user:执行时修改为对应的用户
ansible your_hosts -m user -a 'name=your_user shell=/bin/bash password=your_create_passwd update_password=always'
your_hosts,your_user正确的进行替换为相应的
password:修改成上一步生成的加密密码
进行免密登陆
脚本:ssh-keyadd.yml
位置:/root/playbook
步骤:
touch ssh-keyadd.yml
chmod 744 ssh-keyadd.yml
vim ssh-keyadd.yml
ssh-keyadd.yml编写如下:
---
- hosts: all # 对apps 组里的所有远程主机
gather_facts: False
tasks:
- name: install sshkey
authorized_key:
user: websvr_user
key: "{{ lookup('file', '/home/websvr_user/.ssh/id_rsa.pub') }}"
state: present
hosts:对应的设置主机的群组
user:对应的用户的名字
key:对应的用户.ssh文件目录
执行脚本
ansible-playbook ssh-addkye.yml
至此用户的添加,密码的修改,免密的操作都已经完成了
参考: