ansible实战--普通账户来做批量部署

以前自己玩ansible的时候,都是用的root账户来管理。现在到了生产环境,可不能这么随便了,我相信很多其他公司也都是禁止root的ssh连接。

因此,我这次部署就遇到问题了,网上的很多文章,都没有细说这块。我也是摸索做出来的,通过这次实践,也进一步加深了对ansible的认识。希望可以帮到广大朋友。

部署步骤如下

1.1检查管理机上的ansible.cfg配置文件

# vi /etc/ansible/ansible.cfg

sudo_user      = root     /* 请确保配置是这样的 */

1.2默认ansible是使用key验证的

如果使用密码登陆的服务器,使用ansible的话,

要不修改ansible.cfg配置文件的ask_pass= True给取消注释,

要不就在运行命令时候加上-k,这个意思是-k, --ask-pass ask for SSH password

1.3如果客户端不在know_hosts里将会报错

如果想解决此问题,需要修改ansible.cfg的#host_key_checking = False取消注释

1.4管理机上创建普通账户并加入sudo

# useradd cpis

# passwd cpis

# vi /etc/sudoers

cpis    ALL=(ALL)       NOPASSWD: ALL

1.5被管理机上创建普通账户并加入sudo

# useradd cpis

# passwd cpis

# vi /etc/sudoers

cpis    ALL=(ALL)       NOPASSWD: ALL

1.6管理机上生成密钥并拷贝到被管理机

# su - cpis

[cpis@localhost ~]$ ssh-keygen -t rsa

[cpis@localhost ~]$ ssh-copyid -i 172.31.28.61

[cpis@localhost ~]$ ssh-copyid -i "-p 2208 [email protected]"  //针对非22端口

1.7管理机上做测试

# ansible 172.31.28.61 -u cpis --sudo -a 'ls /root'

wKioL1S-FA6S2OWtAAEYQD2IEuI685.jpg

这样表示测试通过,也就达到我们最初的目的。


本文出自 “hanyun.fang” 博客,转载请与作者联系!

你可能感兴趣的:(ansible使用,非root管理)