ansible离线安装(自动化),ansible离线
ansible离线安装(自动化),ansible离线
介质
所需介质:
Python-2.7.8.tgz
setuptools-7.0.tar.gz
pycrypto-2.6.1.tar.gz
yaml-0.1.5.tar.gz
PyYAML-3.11.tar.gz
MarkupSafe-0.9.3.tar.gz
Jinja2-2.7.3.tar.gz
ecdsa-0.11.tar.gz
paramiko-1.15.1.tar.gz
simplejson-3.6.5.tar.gz
ansible-1.7.2.tar.gz安装
安装前准备
支持的操作系统平台及版本:
—Red HatEnterprise Linux (RHEL) 5.4
—Red HatEnterprise Linux (RHEL) 6.0
安装操作系统:
提供Red Hat Enterprise Linux5.4(64位) / Red Hat Enterprise Linux6.0(64位)服务器,可以方便之后的Ansible安装。安装过程中有一些注意事项,如下:
服务器操作系统安装采用标准类型进行配置,使用iso安装盘镜像文件进行Easy安装
安装系统缺少的rpm:
RedHat5.4:
# rpm-ivh zlib-devel-1.2.3-3.x86_64.rpm
RedHat6.0:
# rpm -ivh zlib-devel-1.2.3-25.el6.x86_64.rpm安装Ansible
使用root用户登录到服务器上,执行以下操作运行安装脚本。
将目录ansible文件夹及ansible.sh文件放在服务器/opt目录下
资源链接:http://download.csdn.net/detail/baidu_34950407/9517540
ansible.sh脚本内容:
#!/bin/sh
#因离线安装,故将安装所需压缩包放在服务器/opt/ansible文件夹下(请先创建ansible文件夹)
#(1)python2.7安装
cd /opt/ansible
tar xvzf Python-2.7.8.tgz
cd Python-2.7.8
./configure --prefix=/usr/local
make
make install
# 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
cd /usr/local/include/python2.7
cp -a ./* /usr/local/include/
# 备份旧版本的python,并符号链接新版本的python
cd /usr/bin
mv python python.old
ln -s /usr/local/bin/python2.7 /usr/local/bin/python
rm -f /usr/bin/python && cp /usr/local/bin/python2.7 /usr/bin/python
# 修改yum脚本,使其指向旧版本的python,已避免其无法运行
sed -i 's/\/usr\/bin\/python/\/usr\/bin\/python2.4/g' /usr/bin/yum
#(2)setuptools模块安装
cd /opt/ansible
tar xvzf setuptools-7.0.tar.gz
cd setuptools-7.0
python setup.py install
#安装好setuptools后就可以利用easy_install这个工具安装下面的python模块了,但若电脑是虚拟机,配置太低,则基本无法安装,所以只好一个一个下载下来再安装。
#(3)、pycrypto模块安装
cd /opt/ansible
tar xvzf pycrypto-2.6.1.tar.gz
cd pycrypto-2.6.1
python setup.py install
#(4)、PyYAML模块安装
cd /opt/ansible
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
#---------------------------
cd /opt/ansible
tar xvzf PyYAML-3.11.tar.gz
cd PyYAML-3.11
python setup.py install
#(5)、Jinja2模块安装
cd /opt/ansible
tar xvzf MarkupSafe-0.9.3.tar.gz
cd MarkupSafe-0.9.3
python setup.py install
#---------------------------
cd /opt/ansible
tar xvzf Jinja2-2.7.3.tar.gz
cd Jinja2-2.7.3
python setup.py install
#(6)、paramiko模块安装
cd /opt/ansible
tar xvzf ecdsa-0.11.tar.gz
cd ecdsa-0.11
python setup.py install
#---------------------------
cd /opt/ansible
tar xvzf paramiko-1.15.1.tar.gz
cd paramiko-1.15.1
python setup.py install
#(7)、simplejson模块安装
cd /opt/ansible
tar xvzf simplejson-3.6.5.tar.gz
cd simplejson-3.6.5
python setup.py install
#(8)、ansible安装
cd /opt/ansible
tar xvzf ansible-1.7.2.tar.gz
cd ansible-1.7.2
python setup.py install
执行安装:
# chmod 777 /opt/ansible.sh
#cd /opt
# ./ansible.sh
结果如下:
Ansible SSH登录
SSH免密钥登录
生成公钥/私钥
# ssh-keygen -t rsa -P ''
写入信任文件(将/root/.ssh/id_rsa.pub分发到其他服务器,并在所有服务器上执行如下指令):
# cat /root/.ssh/id_rsa.pub >>/root/.ssh/authorized_keys
# chmod 600 /root/.ssh/authorized_keys
拷贝,生成ansible配置文件
a 配置文件/etc/ansible/ansible.cfg
# mkdir -p /etc/ansible
# cp /opt/ansible/ansible-1.7.2/examples/ansible.cfg/etc/ansible/
(注:ansible-1.7.2文件夹是ansible-1.7.2.tar.gz压缩包解压后生成的)
b 配置文件/etc/ansible/hosts
# vim /etc/ansible/hosts
[test] (名字可以自定义)
192.168.110.20
192.168.110.30
(说明:第一次运行时,需要输入一下“yes”【进行公钥验证】,后续无需再次输入)
SSH帐号和密码登录
没有开启公钥密钥免密码登录的,直接用ssh帐号和密码也可以拷贝,生成ansible配置文件
a 配置文件/etc/ansible/ansible.cfg
#mkdir -p /etc/ansible
#cp /opt/ansible/ansible-1.7.2/examples/ansible.cfg /etc/ansible/
(注:ansible-1.7.2文件夹是ansible-1.7.2.tar.gz压缩包解压后生成的)
b配置文件/etc/ansible/hosts
# vi /etc/ansible/hosts
[webhosts]
172.16.10.22 ansible_ssh_user=rootansible_ssh_pass=guoting
172.16.10.33 ansible_ssh_user=rootansible_ssh_pass=guoting
解释:
#ansible_ssh_user=root是ssh登陆用户
#ansible_ssh_pass=guoting是ssh登陆密码
测试# ansible test -m command -a'uptime'
在命令行指定-k 选项输入登录
拷贝,生成ansible配置文件
a配置文件/etc/ansible/ansible.cfg
#mkdir -p /etc/ansible
#cp /opt/ansible/ansible-1.7.2/examples/ansible.cfg /etc/ansible/
(注:ansible-1.7.2文件夹是ansible-1.7.2.tar.gz压缩包解压后生成的)
b配置文件/etc/ansible/hosts
# vi /etc/ansible/hosts
[webhosts]
192.168.100.248
例:
#echo 密码 | ansible 192.168.100.248 -u root -m command -a 'uptime' -k
(出现“SSH password:”时,直接回车即可)
评论暂时关闭