ansible部署(pip安装)

时间:2021-06-08 18:35:20

centos7 pip安装 ansible

首先ansible基于python2.X 环境
默认centos都已经安装好了python2环境

安装可选性

ansible可以通过源码,yum,pip等方式安装
本文采用pip安装方式

centos默认没有安装pip,这里我们要安装pip

参考文献:传送门

 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

 python get-pip.py

 [root@localhost ~]# pip -V
pip 19.0. from /usr/lib/python2./site-packages/pip (python 2.7)

安装基础环境

yum install gcc glibc-devel zlib-devel rpm-build openssl-deve -y
yum install -y python-devel

安装ansible

[root@localhost ~]# pip install ansible

[root@localhost ~]# ansible --version
ansible 2.7.7
config file = None
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2.7/site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7.5 (default, Oct 30 2018, 23:45:53) [GCC 4.8.5 20150623 (Red Hat 4.8.5-36)]
pip安装是没有config file文件的 我们可以将官网的默认文件上传到服务器
官方文档:传送门
mkdir /etc/ansible
touch /ect/ansible.cfg

创建后ansible会自动搜索,无需操作

[root@localhost ~]# ansible --version
ansible 2.7.
config file = /etc/ansible/ansible.cfg
configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python2./site-packages/ansible
executable location = /usr/bin/ansible
python version = 2.7. (default, Oct , ::) [GCC 4.8. (Red Hat 4.8.-)]

到这里pip安装ansible就算完成了,接下来来实现一些具体的操作

ansible操作

主机说明
控制主机:10.0.15.59 用于控制其它机器的主机
管理主机:10.0.15.60 被控制的主机
管理主机:10.0.15.66 被控制的主机
A.在控制主机创建秘钥
ssh-keygen -t rsa
在root/.ssh目录下存在两个文件
id_rsa是私钥(不能外泄),id_rsa.pub这个是公钥
B.将控制主机的公钥远程传输到管理主机
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.15.60
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.15.66
输入密码后查看管理主机的.ssh目录下是否出现authorized_keys
C.测试免密是否成功
ssh root@10.0.15.60
ssh root@10.0.15.66

配置免密登录

配置管理主机

vim /etc/ansible/hosts
[group1]
10.0.15.60:2222
10.0.15.66
[group2]
10.0.15.66

A.方括号[]中是组名,用于对系统进行分类,便于对不同系统进行个别的管理.

B.一个系统可以属于不同的组

C.如果有主机的SSH端口不是标准的22端口,可在主机名之后加上端口号,用冒号分隔

等等一些详细的说明可以查看:官方文档

测试

[root@localhost ~]# ansible group1 -m ping
10.0.15.66 | SUCCESS => {
"changed": false,
"ping": "pong"
}
10.0.15.60 | SUCCESS => {
"changed": false,
"ping": "pong"
} 磁盘检测
[root@localhost ~]# ansible all -m shell -a "df -hP|awk 'NR>1 && int(\$5) '"
10.0.15.60 | CHANGED | rc=0 >>
/dev/mapper/centos-root 9.8G 5.0G 4.9G 51% /
tmpfs 488M 7.7M 480M 2% /run
/dev/mapper/centos-home 8.1G 2.6G 5.5G 32% /home
/dev/sda1 197M 120M 77M 61% /boot 10.0.15.66 | CHANGED | rc=0 >>
/dev/mapper/centos-root 17G 1.1G 16G 7% /
tmpfs 488M 7.7M 480M 2% /run
/dev/sda1 1014M 130M 885M 13% /boot