站在巨人的肩膀上
为什么要使用ansible?
因为要讲部署自动化,批量化!
part.1 ansible的优点是什么
(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)、使用python编写,维护更简单,ruby语法过于复杂;
(4)、支持sudo。
part.2 ansible怎么安装
我在这里用的是比较愚蠢的方法,但是还是能够有效地进行的。
2.1关于依赖包
pip install paramiko PyYAML Jinja2 httplib2 six
在安装paramiko的时候很容易发生错误,主要是可能centos7环境下不存在python-devel,gcc,openssl等包,所以只需要进行yum安装就行。
2.2 clone git包
[root@localhost ~]# git clone git://github.com/ansible/ansible.git --recursive
[root@localhost ~]# cd ./ansible
2.3 添加环境
[root@localhost ~]# vim /etc/profile
然后在末尾添加下面代码
export ANSIBLE_HOME="/root/ansible"
export MANPATH="/root/ansible/docs/man:"
export PATH="/root/ansible/bin:/root/ansible/test/runner:/usr/local/mysql/bin:/usr/local/mysql/bin:/usr/local/mysql/bin:/mnt/jdk1.6.0_30/bin:/mnt/jdk1.6.0_30/jre/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/bin"
export PYTHONPATH="/root/ansible/lib:"
2.4 source 运行并查看版本
[root@localhost ~]# source ansible/hacking/env-setup
[root@localhost ~]# ansible --version
2.5 hosts 和roles
在/etc/ansible文件夹中创建hosts文件和roles文件夹
[root@localhost ~]# vim hosts
[root@localhost ~]# mkdir roles
在hosts文件中,主要是分机的ip地址,以及可以添加上
ansible-ssh-user=username ansible-ssh-pass=password
part.3关于ssh的配置
[root@localhost ~]#ssh-keygen
[root@localhost ~]# ssh-copy-id -i ~/.ssh/id_rsa.pub root@分机ip
part.4 ansible ping测试
若出现如下就是配置成功了。
[root@localhost ~]# ansible all -m ping
192.**.**.** | SUCCESS => {
"changed":false,
"failed": false,
"ping" : "pong"
}
part.5 小结
在hosts文件中,可以对分机进行分组,在进行操作的时候可以选择小组的组名来对小组中的机子进行批量部署。这样就能让自动化的部署变得更加有条理。
网友评论