知识点034-ansible批量修改root为不规则密码

 

ansible批量修改root为不规则密码

首先需要给s-linuxad 的sudo配置文件中添加

s-linuxad   ALL=(ALL)   NOPASSWD:ALL

如果没有添加,确认服务器的/etc/sudoers的配置文件中包含以上配置

 

1.1本地目录建立一个脚本cc.sh

#!/bin/bash

openssl rand -base64 8 > ~/openssl

PASS=`cat ~/.openssl`

echo $PASS |sudo passwd --stdin root



1.1.1配置ansible 的配置文件/etc/ansible/hosts
[s-linuxad@T-Ansible-v-szzb ansible]$ pwd

/etc/ansible

[s-linuxad@T-Ansible-v-szzb ansible]$ cat hosts

[nginx]

10.0.40.156

10.0.40.143

10.0.40.235

10.0.40.61

10.0.40.87

10.0.40.95

10.0.40.224

1.2 查看脚本有没有执行成功.openssl 文件内容有没有生成

推送脚本到各个服务器中执行:

ansible 'nginx' -m script -a '/home/s-linuxad/Carlton/cc.sh'

上述命令中nginx 为ansible的模块,可以自己命名的,比如命名为test 都可以,如果命令为test,那么命令将会变更为

ansible 'test' -m script -a '/home/s-linuxad/Carlton/cc.sh'

 

程序运行的结果会有成功(SUCCESS)和不成功的,如果是成功的则可以直接修改,如果是不成功的,则需要进一步处理

10.0.2.198 | UNREACHABLE! => {

    "changed": false,

    "msg": "Failed to connect to the host via ssh: Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).\r\n",

    "unreachable": true

}

10.0.2.196 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

10.0.2.195 | SUCCESS => {

    "changed": false,

    "ping": "pong"

}

 

查看生成的文件是密码并可以验证密码

ansible nginx -m shell -a "cat ~/.openssl"

可以将以上命令运行的结果追加到另一个文件夹中

ansible nginx -m shell -a "cat ~/.openssl"   >/tmp/file.txt

 

1.3.编辑yml 语句提取文件回来本机

[s-linuxad@T-Ansible-v-szzb ~]$ cat fetch-file.yml

---

- hosts: '{{myhosts}}'

  remote_user: s-linuxad

  tasks:

  - name: fetch file

    fetch:

      src: ~/.openssl

      dest: ~/fetch/openssl-{{ inventory_hostname }}

      flat: yes

yml 语句的格式:

- hosts: all

  remote_user: root

  tasks:

  - name: yum install screen

    shell: yum install screen –y

文件解析:-hosts:all指定对所有hosts生效,remote_user表示远程root,tasks表示需要执行的任务;name显示的名称,shell后面接:需要在远程客户端执行的命令。可以写多个命令,以;分号隔开即可,例如 shell: yum install screen -y ;mkdir /tmp/`date +%Y%m%d`

 

1.4 运行命令

ansible-playbook fetch-file.yml -e "myhosts=nginx"

批量回收文件密码到家目录下的fetch 目录中

 

1.5 批量删除其它服务器的密码文件.openssl

ansible nginx  -m shell -a "rm -f ~/.openssl"

 

2. 批量修改用户账户的密码

批量修改的前提必须是无密钥建立成功

[s-linuxad@T-Ansible-v-szzb Carlton]$ cat s-linuxad.sh

#!/bin/bash

PASS=123456

#SUBPASS=`echo ${PASS:0:16}`

echo $PASS |sudo passwd --stdin s-linuxad

[s-linuxad@T-Ansible-v-szzb Carlton]$ cat nagios.sh

#!/bin/bash

PASS=12345676

#SUBPASS=`echo ${PASS:0:16}`

echo $PASS |sudo passwd --stdin nagios

[s-linuxad@T-Ansible-v-szzb Carlton]$ ansible 'nginx' -m script -a '/home/s-linuxad/Carlton/nagios.sh'

 

 

 

转载于:https://my.oschina.net/u/3635512/blog/1678454

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值