该文章摘自:http://my.oschina.net/firxiao/blog/343395,该文章制作笔记使用,不做他用,转载请注明原文链接出处
Ansible 默认是基于SSH协议进行通信的。
管理主机的环境要求:
0.当前windows系统还不能作为管理机
1.python 2.6版本以上
2.paramiko 模块
3.PyYAML
4.Jinja2
5.httplib2
被控制主机的要求:
1.如果被管理节点是Unix系统的话,python版本要求是2.4及其以上。但是如果版本低于2.5的话需要安装python的一个模块python-simplejson
,如果这个模块没有安装,同门还是可以使用Ansible的raw模块和script模块,所以这个时候我们可以通过raw模块来安装python-simplejson
,之后
就能使用ansible的所有功能了
语法:
ansible myhost -m raw -a "yum -y install python-simplejson
"
一、配置epel源
[root@git .ssh]# wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
二、安装ansible
yum -y install ansible
注意还有一些附属模块也要安装
pip install paramiko PyYAML Jinja2 httplib2 six
如果没有安装pip的话,首先安装对应于你的python版本的pip
easy_install pip
二、被管理主机的要求
还有一个要注意的是因为我的被管理主机的系统是centos 5.8的,所以我的python版本都是2.4.3的。
通常我们使用 ssh 与托管节点通信,默认使用 sftp.如果 sftp 不可用,可在 ansible.cfg 配置文件中配置成 scp 的方式. 在托管节点上也需要安装 Python 2.4 或以上的版本.如果版本低于 Python 2.5 ,还需要额外安装一个模块:
python-simplejson
- 我这里是登陆到每一台机器上执行:yum -y install python-simplejson
- 但是我们可以通过 ansible all -m raw -a "yum install -y python-simplejson"来安装,但是登陆远程机器的连接用户都是wwwad没有yum的权限,这里我不知道怎么操作。所有我就一台一台机器登陆的去
- su - root
- yum install -y python-simplejson
- 学习不精啊,只有在这里受累了,看看到后面有没有什么方法。
Note
没安装python-simplejson,也可以使用Ansible的”raw”模块和script模块,因此从技术上讲,你可以通过Ansible的”raw”模块安装python-simplejson,之后就可以使用Ansible的所有功能了.
Note
如果托管节点上开启了SElinux,你需要安装libselinux-python,这样才可使用Ansible中与copy/file/template相关的函数.你可以通过Ansible的yum模块在需要的托管节点上安装libselinux-python.