自动化运维工具Ansible(一)---安装部署

本文详细介绍在CentOS7环境下,如何通过Python2.7安装Ansible所需的依赖模块,并完成Ansible的安装配置过程,包括SSH免密码登录配置及简单测试。

1.环境:centos7,Python 2.7(兼容Python2.6.6),两台服务器:192.168.1.94(被控机),192.168.1.115(主机)

2.安装:(如不特殊说明,均在主机上安装部署)

a.yum -y install python-devel

b..安装pycrypto模块
wget https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz
# tar xvzf pycrypto-2.6.1.tar.gz
# cd pycrypto-2.6.1
# python setup.py install

c.安装yaml模块
wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz
# tar xvzf yaml-0.1.5.tar.gz
# cd yaml-0.1.5
# ./configure --prefix=/usr/local
# make --jobs=`grep processor /proc/cpuinfo |wc -l`
# make install

d.安装PyYAML模块
wget https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz
# tar xvzf PyYAML-3.11.tar.gz
# cd PyYAML-3.11
# python setup.py install

e. 安装MarkupSafe模块
wget https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz
# tar xvzf MarkupSafe-0.9.3.tar.gz
# cd MarkupSafe-0.9.3
# python setup.py install

f.安装Jinja2模块
wget https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz
# tar xvzf Jinja2-2.7.3.tar.gz
# cd Jinja2-2.7.3
# python setup.py install

g.安装simplejson模块安装
wget https://pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz
# tar xvzf simplejson-3.6.5.tar.gz
# cd simplejson-3.6.5
# python setup.py install

h. 安装ecdsa模块
wget https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz
# tar xvzf ecdsa-0.11.tar.gz
# cd ecdsa-0.11
# python setup.py install
 
i. 安装paramiko模块
wget https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz
# tar xvzf paramiko-1.15.1.tar.gz
# cd paramiko-1.15.1
# python setup.py install
 
j. 安装ansible
wget https://github.com/ansible/ansible/archive/v1.7.2.tar.gz
# tar xvzf v1.7.2.tar.gz
# cd ansible-1.7.2
# python setup.py install

k. 安装setuptools
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz
# tar xvzf setuptools-7.0.tar.gz
# cd setuptools-7.0
# python setup.py install
 
3、配置:

a.拷贝配置文件
         在安装完成之后,配置文件在安装路径之中,如下图所示:

b.在ansible安装目录下,拷贝examples目录下的拷贝ansible.cfg,hosts到/etc/ansible(新建)目录下:
   新建目录:mkdir /etc/ansible
   拷贝/usr/local/pythonasiable/ansible-1.7.2/examples目录下的ansible.cfg与hosts到/etc/ansible目录:   cp ansible.cfg hosts /etc/ansible/

c.配置hosts文件
vi /etc/ansible/hosts 
在hosts文件中添加此行被控机信息:
[client]
192.168.1.94 ansible_ssh_user=root ansible_ssh_pass='superv8.com'

d.ssh配置
SSH免密码登录,因为需要通过SSH登录到各个节点进行操作,我用的是root用户,
每台服务器都生成公钥,再合并到authorized_keys
    (1)CentOS默认没有启动ssh无密登录,去掉vi /etc/ssh/sshd_config其中2行的注释,
    每台服务器都要设置,(去除#号)
                 RSAAuthentication yes
                 PubkeyAuthentication yes
    (2)输入命令,ssh-keygen -t rsa,生成key,都不输入密码,一直回车,/root就会生成.ssh文件夹,每台服务器都要设置,
    (3)合并公钥到authorized_keys文件,在Master服务器,进入/root/.ssh目录,通过SSH命令合并,
                cat id_rsa.pub>> authorized_keys
                ssh root@192.168.1.94 cat ~/.ssh/id_rsa.pub>> authorized_keys
                ssh root@192.168.1.115 cat ~/.ssh/id_rsa.pub>> authorized_keys
    (4)authorized_keys为存储的id_rsa.pub、known_hosts  初次访问时会在.ssh下生成
    (5)完成,ssh root@192.168.1.94 、ssh root@192.168.1.115 就不需要输入密码了

15、初步进行测试
 
 

16.相关报错,解决方法:

a..相关报错

解决办法:

Ansible使用sshpass程序通过SSH登录到服务器时使用的密码。
出于安全原因,你应该Ansible登录服务器使用SSH密钥,但对于新服务器最初是简单的登录密码,Ansible设置用户和SSH密钥,然后后续登录使用SSH密钥。
sshpass,可以从源代码安装sshpass有以下步骤:

curl -O -L http://downloads.sourceforge.net/project/sshpass/sshpass/1.05/sshpass-1.05.tar.gz
tar xvzf sshpass-1.05.tar.gz
cd sshpass-1.05
./configure
make
make install

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值