ansible安装部署

说明: 

(1)、以上内容大多是基于他人分享的基础上总结而来,学习借鉴之用;

(2)、本次安装基于 CentOS 6.x 系统环境。

 

1、ansible安装

(1)ansible各种模块下载

https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz

https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz

https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz

http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz

https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz

https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz

https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz

https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz

https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz

https://pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz

https://github.com/ansible/ansible/archive/v1.7.2.tar.gz

(2)、Python2.7安装

$ tar xvzf Python-2.7.8.tgz 
$ cd Python-2.7.8 
$ ./configure --prefix=/usr/local/python
$ make --jobs=`grep processor /proc/cpuinfo | wc -l`  
# grep processor /proc/cpuinfo | wc –l 命令解析为统计cpu数量,--jobs为多线程执行
$ make install

将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件 

$ cd /usr/local/python/include/python2.7 
$ cp -a ./* /usr/local/include/
# 备份旧版本的python,并符号链接新版本的python 
$ cd /usr/bin 
$ mv python python.old
$ ln -s /usr/local/python/bin/python ./python  
# 修改yum脚本,使其指向旧版本的python,已避免其无法运行 
$ vim /usr/bin/yum 
#!/usr/bin/python  -->  #!/usr/bin/python.old

(3)、Setuptools模块安装

$ tar xvzf setuptools-7.0.tar.gz 
$ cd setuptools-7.0 
$ yum install zlib zlib-devel
$ cd ..
$ cd Python
$ make install
$ cd ..
$ cd setupt00ls
$ python setup.py install​

(4)、pycrypto模块安装

$ tar xvzf pycrypto-2.6.1.tar.gz 
$ cd pycrypto-2.6.1 
$ python setup.py install​

(5)、PyYAML模块安装

$ tar xvzf yaml-0.1.5.tar.gz 
$ cd yaml-0.1.5 
$ ./configure --prefix=/usr/local 
$ make
$ make install
$ tar zxvf PyYAML-3.11.tar.gz
$ cd PyYAML-3.11
$ python setup.py install

(6)、Jinja2-2.7.3.tar.gz模块安装

$ tar xvzf MarkupSafe-0.9.3.tar.gz 
$ cd MarkupSafe-0.9.3 
$ python setup.py install

$ tar xvzf Jinja2-2.7.3.tar.gz
$ cd Jinja2-2.7.3 
$ python setup.py install

(7)、paramiko模块安装

$ tar xvzf ecdsa-0.11.tar.gz 
$ cd ecdsa-0.11 
$ python setup.py install
 
$ tar xvzf paramiko-1.15.1.tar.gz 
$ cd paramiko-1.15.1 
$ python setup.py install

(8)、simplejson模块安装

$ tar xvzf simplejson-3.6.5.tar.gz 
$ cd simplejson-3.6.5 
$ python setup.py install

(9)、ansible安装

$ tar xvzf v1.7.2.tar.gz 
$ cd ansible-1.7.2 
$ python setup.py install

2、Ansible配置

(1)生成公钥私钥

$ ssh-keygen -t rsa -P ''
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/id_rsa_storm1
Your identification has been saved in /root/.ssh/id_rsa_storm1.
Your public key has been saved in /root/.ssh/id_rsa_storm1.pub.
The key fingerprint is:
b9:47:25:1a:32:5c:e5:1d:48:8f:93:b1:f2:7b:06:c6 root@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| .o+.. |
| . . ..B . |
| + o B + |
| o B + |
| S E |
| + o |
| . o o |
| . o |
| |
+-----------------+

(2)在远程主机生成authorized_keys

$ ssh-copy-id -i ~/.ssh/id_rsa.storm1.pub “root@192.168.100.129” 
# root:远程主机用户名;192.168.100.129:远程主机IP;

(3)若ssh非22端口,则根据端口修改命令如下:

$ ssh-copy-id -i /root/.ssh/id_rsa_storm1.pub "-p 12580 root@192.168.100.129" 
# 12580:端口号

CentOS7则是:

$ ssh-copy-id -i /root/.ssh/id_rsa_storm1.pub -p 12580 “root@192.168.100.129”

(4) 拷贝,生成ansible配置文件

a 配置文件/etc/ansible/ansible.cfg

$ mkdir -p /etc/ansible
$ cp /root/ansible/ansible-1.7.2/examples/ansible.cfg /etc/ansible/

b 配置文件/etc/ansible/hosts

$ vim /etc/ansible/hosts
[test] 192.168.100.129

若ssh非22端口,则根据端口修改命令如下:

[test]
192.168.100.129
[test:vars]
ansible_ssh_user="root"
ansible_ssh_port=12580

(5)测试

# 将test改成IP也是可以的,改成IP则为执行一台;
$ ansible test -m command -a 'uptime'
192.168.226.129 | FAILED => SSH encountered an unknown error during the connection. We recommend you re-run the command using -vvvv, which will enable SSH debugging output to help diagnose the issue

解决:

$ vim /etc/ansible/ansible.cfg
……
private_key_file = /root/.ssh/id_rsa_storm1

失败:(表示客户机缺少python和python-simplejson)

$ yum install python python-simplejson

测试# ansible test -m ping

成功:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值