ansible简易使用
环境:
centos 7 192.168.10.10 主控机
centos 7 192.168.10.130 被控机
windows7 192.168.10.131 被控机
安装:
1、安装ansible前,我们使用国内的yum源进行安装。这里使用阿里的第三方软件源
[root@localhost ~]#wget -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo [root@localhost ~]#yum clean all [root@localhost ~]#yum makecache
[root@localhost ~]#yum install ansible -y
2、设置ssh免秘钥登陆
[root@localhost ~]# ssh-keygen -n '' // 生成公钥和私钥 generating public/private rsa key pair. enter file in which to save the key (/root/.ssh/id_rsa): // 这里默认回车即可 your identification has been saved in /root/.ssh/id_rsa. your public key has been saved in /root/.ssh/id_rsa.pub. the key fingerprint is: sha256:uzb5qdbxve8hkwrcvucnj1ptc3na3dzp2udc16xn5vu root@localhost.localdomain the key's randomart image is: +---[rsa 2048]----+ | +=**.. +| | .+..+ .++| | . *+ o..o| | .o=+o o+b| | s+ ..o be| | .. o +=b| | . o.oo| | . | | | +----[sha256]-----+
如果选择默认路径,则秘钥文件在当前用户的家目录~/.ssh/下
3、将秘钥发给客户端
[root@localhost ~]# ssh-copy-id root@192.168.10.130
这里有个问题需要注意下,如果主控端以前使用ssh连接过被控端,在给客户端发送秘钥的过程中可能会有些小问题,发送完成后你可能会发现~/.ssh这个目录不见了。不要着急,在执行一次生成秘钥,然后再次将秘钥发给客户端即可。最终你会看到像下面这个样子的:
4、验证ssh免秘钥登陆
[root@localhost ~]# ssh 192.168.10.130
登陆成功后,看起来像下面这样:
5、使用ansible测试被监控主机是否存活
[root@localhost ~]# ansible 192.168.10.130 -m ping // 指定主机查看是否存活
如果看到下面这样,说明主机存活。
5.1查询被控端主机名
[root@localhost ~]# ansible damo -m command -a 'hostname'
6、使用ansible控制windows主机
6.1首先要确保本机microsoft .net framework 4.0以上版本http://download.microsoft.com/download/b/a/4/ba4a7e71-2906-4b2d-a0e1-80cf16844f5f/dotnetfx45_full_x86_x64.exe
6.2下载powershell 4.0 https://www.microsoft.com/zh-cn/download/details.aspx?id=40855
关于如何安装这里就不再多说了。安装完成后需要重启,重启后我们的powershell应该是这个版本:
6.3设置远程策略允许远程主机连接
set-executionpolicy remotesigned // 注意需要以管理员身份来运行
7、启动winrm服务
winrm quickconfig
7.1查看winrm服务
winrm e winrm/config/listener
7.2为winrm service 配置auth:
winrm set winrm/config/service/auth '@{basic="true"}'
7.3为winrm service 配置加密方式为允许非加密:
winrm set winrm/config/service '@{allowunencrypted="true"}'
好了windows到这里就告一段落,下面我们进行测试。
9、主控机上需要安装python winrm模块
[root@localhost ~]# pip install pywinrm
这里需要注意:ansible使用的是python2.x版本如果安装了多版本的python3.x的环境要注意在使用pip安装pywinrm模块时要确定模块安装到哪个python环境中去了,否则ansible有可能会找不到winrm模块,所以为了避免这种混乱尽量在主控端只安装一个python2.7版本。如果是系统默认yum安装的python2.7,你还需要yum install python-pip -y 安装pip。
10、在ansible的主机配置文件中添加windows主机
[root@localhost ~]# vim /etc/ansible/hosts [linux] // linux主机 192.168.10.130 [windows] // windows 主机 192.168.10.131 ansible_ssh_user="id_iot" ansible_ssh_pass="123.com" ansible_ssh_port=5985 ansible_connection="winrm" ansible_winrm_server_cert_validation=ignore
11、测试windows主机是否存活
[root@localhost ~]# ansible windows -m win_ping
11.1查看windows当前登陆用户
[root@localhost ~]# ansible windows -m win_command -a "whoami"
11.2在被控端主机上创建文件夹
[root@localhost ~]# ansible 192.168.10.131 -m win_file -a 'dest=c:\config_dir state=directory'
未完待续。。。。
上一篇: 为什么建议大家使用 Linux 开发