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:”时,直接回车即可)






相关内容

    暂无相关文章