环境
linux 7.0
python 2.7.5
主控:192.168.40.68
被控01:192.168.40.09
被控02:192.168.40.10
配置ssh访问
主控:192.168.40.68
ssh-keygen
cat /root/.ssh/id_rsa.pub
生成ssh,查看主控端公钥,如下:
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:Fodm2b2DNfh0TjkkbP7WQ9VhmLwKUjHcj6iVlzDeTi0 root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| .oo.o +oo|
| O.+o*..o|
| O XoX * .|
| + O E.X o |
| S * *.o. |
| o o .o..|
| . .|
| |
| |
+----[SHA256]-----+
[root@localhost ~]# cat /root/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDI/E8BtYYngDRsHgFikYp4/IZlkFKAr/8+YBl+auhM6TFy6z9jizJW/LXvZE5q4xNb6w4/0ntXcjSVTiF1yNtN+E9/yS/F/Jn7fjbpGaKyyKWZhDPlAfoM2+Z5sBgIPVfWG1ChT4jm6wc+usmdjw2+0ANWxWNu7uycwn5PuqNAuSfsuw9S+NdwhkU29bQ4ocTI2d5QPdDvKH7aeXrHpIdM2PN6B8q7164tH/D8Jxgjdei+RSTbvwRKRBPjCHpp62RnFGOTD2TibAjCDQRAlEaTzyB9EDFVOzc1Dv9bNz14K9v7EOKFX7VwJlth/9HBG7rZBKDo5+1XktT/DhguIrBr root@localhost.localdomain
[root@localhost ~]#
被控01:192.168.40.09
ssh-keygen
vim ~/.ssh/authorized_keys
生成ssh,打开authorized_keys文件,将192.168.40.68的id_rsa.pub公钥复制到192.168.40.09的authorized_key文件中。保存。如下:
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:9bICeGkKJeCXjIxaKJdOE3RvZYA131RgvV6w/IBctzo root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
|..o .o+.o ++. |
|+oo+o. = + + . |
|++B+. o ..o+ = . |
|o=.+ o . .o.= o |
|. o . = S ...= |
| . + . oE . |
| . . . . |
| . |
| |
+----[SHA256]-----+
[root@localhost ~]# vim ~/.ssh/authorized_keys
被控02:192.168.40.10
ssh-keygen
vim ~/.ssh/authorized_keys
生成ssh,打开authorized_keys文件,将192.168.40.68的id_rsa.pub公钥复制到192.168.40.10的authorized_key文件中。保存。如下:
[root@localhost ~]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
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:rKcJBEV5uNYyC0zxtVFctZ2gE1is8u72K06An2vb9o4 root@localhost.localdomain
The key's randomart image is:
+---[RSA 2048]----+
| .ooooo.=+.o |
| .oo..oo .o + . |
| o. .+. .o . o |
| o.=.o.. . |
| oo+.oS |
| ... +. |
| . +.o |
| ..B=. |
| .=*E==. |
+----[SHA256]-----+
[root@localhost ~]# vim ~/.ssh/authorized_keys
安装ansible
主控:192.168.40.68
ansible只需要在主控端安装即可。
yum install ansible -y
vim /etc/ansible/hosts
使用yum安装,安装完成后,添加被控端ip至主控端hosts文件末尾中。如下
[root@localhost ~]# yum install ansible -y
已加载插件:fastestmirror, langpacks
Determining fastest mirrors
* base: mirrors.cn99.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.6 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): base/7/x86_64/group_gz | 166 kB 00:00:00
(2/4): extras/7/x86_64/primary_db | 156 kB 00:00:00
(3/4): updates/7/x86_64/primary_db | 1.3 MB 00:00:00
(4/4): base/7/x86_64/primary_db | 6.0 MB 00:00:03
正在解决依赖关系
--> 正在检查事务
---> 软件包 ansible.noarch.0.2.4.2.0-2.el7 将被 安装
--> 正在处理依赖关系 sshpass,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在处理依赖关系 python2-jmespath,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在处理依赖关系 python-setuptools,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在处理依赖关系 python-passlib,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在处理依赖关系 python-paramiko,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在处理依赖关系 python-jinja2,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在处理依赖关系 python-httplib2,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在处理依赖关系 python-cryptography,它被软件包 ansible-2.4.2.0-2.el7.noarch 需要
--> 正在检查事务
---> 软件包 python-httplib2.noarch.0.0.9.2-1.el7 将被 安装
---> 软件包 python-jinja2.noarch.0.2.7.2-2.el7 将被 安装
--> 正在处理依赖关系 python-babel >= 0.8,它被软件包 python-jinja2-2.7.2-2.el7.noarch 需要
--> 正在处理依赖关系 python-markupsafe,它被软件包 python-jinja2-2.7.2-2.el7.noarch 需要
---> 软件包 python-paramiko.noarch.0.2.1.1-9.el7 将被 安装
--> 正在处理依赖关系 python2-pyasn1,它被软件包 python-paramiko-2.1.1-9.el7.noarch 需要
---> 软件包 python-passlib.noarch.0.1.6.5-2.el7 将被 安装
---> 软件包 python-setuptools.noarch.0.0.9.8-7.el7 将被 安装
--> 正在处理依赖关系 python-backports-ssl_match_hostname,它被软件包 python-setuptools-0.9.8-7.el7.noarch 需要
---> 软件包 python2-cryptography.x86_64.0.1.7.2-2.el7 将被 安装
--> 正在处理依赖关系 python-idna >= 2.0,它被软件包 python2-cryptography-1.7.2-2.el7.x86_64 需要
--> 正在处理依赖关系 python-cffi >= 1.4.1,它被软件包 python2-cryptography-1.7.2-2.el7.x86_64 需要
--> 正在处理依赖关系 python-ipaddress,它被软件包 python2-cryptography-1.7.2-2.el7.x86_64 需要
--> 正在处理依赖关系 python-enum34,它被软件包 python2-cryptography-1.7.2-2.el7.x86_64 需要
---> 软件包 python2-jmespath.noarch.0.0.9.0-3.el7 将被 安装
---> 软件包 sshpass.x86_64.0.1.06-2.el7 将被 安装
--> 正在检查事务
---> 软件包 python-babel.noarch.0.0.9.6-8.el7 将被 安装
---> 软件包 python-backports-ssl_match_hostname.noarch.0.3.5.0.1-1.el7 将被 安装
--> 正在处理依赖关系 python-backports,它被软件包 python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 需要
---> 软件包 python-cffi.x86_64.0.1.6.0-5.el7 将被 安装
--> 正在处理依赖关系 python-pycparser,它被软件包 python-cffi-1.6.0-5.el7.x86_64 需要
---> 软件包 python-enum34.noarch.0.1.0.4-1.el7 将被 安装
---> 软件包 python-idna.noarch.0.2.4-1.el7 将被 安装
---> 软件包 python-ipaddress.noarch.0.1.0.16-2.el7 将被 安装
---> 软件包 python-markupsafe.x86_64.0.0.11-10.el7 将被 安装
---> 软件包 python2-pyasn1.noarch.0.0.1.9-7.el7 将被 安装
--> 正在检查事务
---> 软件包 python-backports.x86_64.0.1.0-8.el7 将被 安装
---> 软件包 python-pycparser.noarch.0.2.14-1.el7 将被 安装
--> 正在处理依赖关系 python-ply,它被软件包 python-pycparser-2.14-1.el7.noarch 需要
--> 正在检查事务
---> 软件包 python-ply.noarch.0.3.4-11.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
==============================================================================================
Package 架构 版本 源 大小
==============================================================================================
正在安装:
ansible noarch 2.4.2.0-2.el7 extras 7.6 M
为依赖而安装:
python-babel noarch 0.9.6-8.el7 base 1.4 M
python-backports x86_64 1.0-8.el7 base 5.8 k
python-backports-ssl_match_hostname noarch 3.5.0.1-1.el7 base 13 k
python-cffi x86_64 1.6.0-5.el7 base 218 k
python-enum34 noarch 1.0.4-1.el7 base 52 k
python-httplib2 noarch 0.9.2-1.el7 extras 115 k
python-idna noarch 2.4-1.el7 base 94 k
python-ipaddress noarch 1.0.16-2.el7 base 34 k
python-jinja2 noarch 2.7.2-2.el7 base 515 k
python-markupsafe x86_64 0.11-10.el7 base 25 k
python-paramiko noarch 2.1.1-9.el7 updates 269 k
python-passlib noarch 1.6.5-2.el7 extras 488 k
python-ply noarch 3.4-11.el7 base 123 k
python-pycparser noarch 2.14-1.el7 base 104 k
python-setuptools noarch 0.9.8-7.el7 base 397 k
python2-cryptography x86_64 1.7.2-2.el7 base 502 k
python2-jmespath noarch 0.9.0-3.el7 extras 39 k
python2-pyasn1 noarch 0.1.9-7.el7 base 100 k
sshpass x86_64 1.06-2.el7 extras 21 k
事务概要
==============================================================================================
安装 1 软件包 (+19 依赖软件包)
总下载量:12 M
安装大小:59 M
Downloading packages:
警告:/var/cache/yum/x86_64/7/base/packages/python-backports-1.0-8.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
python-backports-1.0-8.el7.x86_64.rpm 的公钥尚未安装
(1/20): python-backports-1.0-8.el7.x86_64.rpm | 5.8 kB 00:00:00
(2/20): python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch.rpm | 13 kB 00:00:00
(3/20): python-enum34-1.0.4-1.el7.noarch.rpm | 52 kB 00:00:00
(4/20): python-idna-2.4-1.el7.noarch.rpm | 94 kB 00:00:00
(5/20): python-babel-0.9.6-8.el7.noarch.rpm | 1.4 MB 00:00:00
(6/20): python-ipaddress-1.0.16-2.el7.noarch.rpm | 34 kB 00:00:00
(7/20): python-markupsafe-0.11-10.el7.x86_64.rpm | 25 kB 00:00:00
(8/20): python-cffi-1.6.0-5.el7.x86_64.rpm | 218 kB 00:00:00
python-httplib2-0.9.2-1.el7.noarch.rpm 的公钥尚未安装
(9/20): python-httplib2-0.9.2-1.el7.noarch.rpm | 115 kB 00:00:00
(10/20): python-ply-3.4-11.el7.noarch.rpm | 123 kB 00:00:00
(11/20): python-jinja2-2.7.2-2.el7.noarch.rpm | 515 kB 00:00:00
(12/20): python-pycparser-2.14-1.el7.noarch.rpm | 104 kB 00:00:00
python-paramiko-2.1.1-9.el7.noarch.rpm 的公钥尚未安装 ] 2.2 MB/s | 4.8 MB 00:00:03 ETA
(13/20): python-paramiko-2.1.1-9.el7.noarch.rpm | 269 kB 00:00:01
(14/20): python-setuptools-0.9.8-7.el7.noarch.rpm | 397 kB 00:00:00
(15/20): python2-jmespath-0.9.0-3.el7.noarch.rpm | 39 kB 00:00:00
(16/20): python2-pyasn1-0.1.9-7.el7.noarch.rpm | 100 kB 00:00:00
(17/20): python2-cryptography-1.7.2-2.el7.x86_64.rpm | 502 kB 00:00:01
(18/20): python-passlib-1.6.5-2.el7.noarch.rpm | 488 kB 00:00:01
(19/20): sshpass-1.06-2.el7.x86_64.rpm | 21 kB 00:00:03
(20/20): ansible-2.4.2.0-2.el7.noarch.rpm | 7.6 MB 00:00:05
----------------------------------------------------------------------------------------------
总计 2.1 MB/s | 12 MB 00:00:05
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 检索密钥
导入 GPG key 0xF4A80EB5:
用户ID : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
指纹 : 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
软件包 : centos-release-7-5.1804.el7.centos.x86_64 (@anaconda)
来自 : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : python2-pyasn1-0.1.9-7.el7.noarch 1/20
正在安装 : python-ipaddress-1.0.16-2.el7.noarch 2/20
正在安装 : python-enum34-1.0.4-1.el7.noarch 3/20
正在安装 : python-httplib2-0.9.2-1.el7.noarch 4/20
正在安装 : sshpass-1.06-2.el7.x86_64 5/20
正在安装 : python-backports-1.0-8.el7.x86_64 6/20
正在安装 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 7/20
正在安装 : python-setuptools-0.9.8-7.el7.noarch 8/20
正在安装 : python-babel-0.9.6-8.el7.noarch 9/20
正在安装 : python2-jmespath-0.9.0-3.el7.noarch 10/20
正在安装 : python-passlib-1.6.5-2.el7.noarch 11/20
正在安装 : python-ply-3.4-11.el7.noarch 12/20
正在安装 : python-pycparser-2.14-1.el7.noarch 13/20
正在安装 : python-cffi-1.6.0-5.el7.x86_64 14/20
正在安装 : python-markupsafe-0.11-10.el7.x86_64 15/20
正在安装 : python-jinja2-2.7.2-2.el7.noarch 16/20
正在安装 : python-idna-2.4-1.el7.noarch 17/20
正在安装 : python2-cryptography-1.7.2-2.el7.x86_64 18/20
正在安装 : python-paramiko-2.1.1-9.el7.noarch 19/20
正在安装 : ansible-2.4.2.0-2.el7.noarch 20/20
验证中 : python-idna-2.4-1.el7.noarch 1/20
验证中 : python-markupsafe-0.11-10.el7.x86_64 2/20
验证中 : python-jinja2-2.7.2-2.el7.noarch 3/20
验证中 : python-ply-3.4-11.el7.noarch 4/20
验证中 : python-passlib-1.6.5-2.el7.noarch 5/20
验证中 : python2-jmespath-0.9.0-3.el7.noarch 6/20
验证中 : python-paramiko-2.1.1-9.el7.noarch 7/20
验证中 : python-babel-0.9.6-8.el7.noarch 8/20
验证中 : ansible-2.4.2.0-2.el7.noarch 9/20
验证中 : python-backports-1.0-8.el7.x86_64 10/20
验证中 : python-cffi-1.6.0-5.el7.x86_64 11/20
验证中 : python-ipaddress-1.0.16-2.el7.noarch 12/20
验证中 : sshpass-1.06-2.el7.x86_64 13/20
验证中 : python-httplib2-0.9.2-1.el7.noarch 14/20
验证中 : python2-pyasn1-0.1.9-7.el7.noarch 15/20
验证中 : python-enum34-1.0.4-1.el7.noarch 16/20
验证中 : python-pycparser-2.14-1.el7.noarch 17/20
验证中 : python-setuptools-0.9.8-7.el7.noarch 18/20
验证中 : python2-cryptography-1.7.2-2.el7.x86_64 19/20
验证中 : python-backports-ssl_match_hostname-3.5.0.1-1.el7.noarch 20/20
已安装:
ansible.noarch 0:2.4.2.0-2.el7
作为依赖被安装:
python-babel.noarch 0:0.9.6-8.el7
python-backports.x86_64 0:1.0-8.el7
python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7
python-cffi.x86_64 0:1.6.0-5.el7
python-enum34.noarch 0:1.0.4-1.el7
python-httplib2.noarch 0:0.9.2-1.el7
python-idna.noarch 0:2.4-1.el7
python-ipaddress.noarch 0:1.0.16-2.el7
python-jinja2.noarch 0:2.7.2-2.el7
python-markupsafe.x86_64 0:0.11-10.el7
python-paramiko.noarch 0:2.1.1-9.el7
python-passlib.noarch 0:1.6.5-2.el7
python-ply.noarch 0:3.4-11.el7
python-pycparser.noarch 0:2.14-1.el7
python-setuptools.noarch 0:0.9.8-7.el7
python2-cryptography.x86_64 0:1.7.2-2.el7
python2-jmespath.noarch 0:0.9.0-3.el7
python2-pyasn1.noarch 0:0.1.9-7.el7
sshpass.x86_64 0:1.06-2.el7
完毕!
[root@localhost ~]# vim /etc/ansible/hosts
添加被控端ip至主控端hosts文件末尾中,如下图
ansible all -m ping
主控端使用该命令进行验证,若正常则如下图。