如何通过Ansible来管理上千台服务器??

栏目: 服务器 · 发布时间: 6年前

内容简介:ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:(1)、连接插件connection plugins:负责和被监控端实现通信;(2)、host inventory:指定操作的主机,是一个配置文件里面定义

一、基础介绍

1、简介

ansible是新出现的自动化运维工具,基于 Python 开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。ansible是基于模块工作的,本身没有批量部署的能力。真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。主要包括:

(1)、连接插件connection plugins:负责和被监控端实现通信;

(2)、host inventory:指定操作的主机,是一个配置文件里面定义监控的主机;

(3)、各种模块核心模块、command模块、自定义模块;

(4)、借助于插件完成记录日志邮件等功能;

(5)、playbook:剧本执行多个任务时,非必需可以让节点一次性运行多个任务。

如何通过Ansible来管理上千台服务器??

2、总体架构

如何通过Ansible来管理上千台服务器??

3、特性

(1)、no agents:不需要在被管控主机上安装任何客户端;

(2)、no server:无服务器端,使用时直接运行命令即可;

(3)、modules in any languages:基于模块工作,可使用任意语言开发模块;

(4)、yaml,not code:使用yaml语言定制剧本playbook;

(5)、ssh by default:基于SSH工作;

(6)、strong multi-tier solution:可实现多级指挥。

4、优点

(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;

(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;

(3)、使用python编写,维护更简单,ruby语法过于复杂;

(4)、支持sudo。

5、任务执行流程

如何通过Ansible来管理上千台服务器??

二、Ansible基础安装与配置

1、Ansible基础安装

(1)、python2.7安装

#wget https://www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz 
# tar xvzf Python-2.7.8.tgz 
# cd Python-2.7.8 
# ./configure --prefix=/usr/local 
# make --jobs=`grep processor/proc/cpuinfo | wc -l` 
# make install 
## 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件 
# cd /usr/local/include/python2.7 
# cp -a ./* /usr/local/include/ 
## 备份旧版本的python,并符号链接新版本的python 
# cd /usr/bin 
# mv python python2.6 
# ln -s /usr/local/bin/python 
## 修改yum脚本,使其指向旧版本的python,已避免其无法运行 
# vim /usr/bin/yum 
#!/usr/bin/python --> #!/usr/bin/python2.6 

(2)、setuptools模块安装

#wget https://pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz 
# tar xvzf setuptools-7.0.tar.gz 
# cd setuptools-7.0 
# python setup.py install 

(3)、pycrypto模块安装

#wget https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz 
# tar xvzf pycrypto-2.6.1.tar.gz 
# cd pycrypto-2.6.1 
# python setup.py install 

(4)、PyYAML模块安装

#wget http://pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz 
# 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 
 
//作业数是在编译的时候指定主机的CPU个数,并行处理的作业数和编译的效率直接相关,所以需要设置合适的作业数量。 
 
#wget https://pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz 
# tar xvzf PyYAML-3.11.tar.gz 
# cd PyYAML-3.11 
# python setup.py install 

(5)、Jinja2模块安装

https://pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz 
# tar xvzf MarkupSafe-0.9.3.tar.gz 
# cd MarkupSafe-0.9.3 
# python setup.py install 
https://pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz 
# tar xvzf Jinja2-2.7.3.tar.gz 
# cd Jinja2-2.7.3 
# python setup.py install 

(6)、paramiko模块安装

https://pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz 
# tar xvzf ecdsa-0.11.tar.gz 
# cd ecdsa-0.11 
# python setup.py install 
https://pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz 
# tar xvzf paramiko-1.15.1.tar.gz 
# cd paramiko-1.15.1 
# python setup.py install 

(7)、simplejson模块安装

https://pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz 
# tar xvzf simplejson-3.6.5.tar.gz 
# cd simplejson-3.6.5 
# python setup.py install 

(8)、ansible安装

https://github.com/ansible/ansible/archive/v1.7.2.tar.gz 
# tar xvzf ansible-1.7.2.tar.gz 
# cd ansible-1.7.2 
# python setup.py install 

2、Ansible配置

(1)、SSH免密钥登录设置

## 生成公钥/私钥并传到目标服务器(在10.123.167.15执行)

如何通过Ansible来管理上千台服务器??

#将私钥加到目标服务器的认证文件并授权(在34、51、59、61、63执行)

如何通过Ansible来管理上千台服务器??

(2)、ansible配置

# mkdir -p /etc/ansible 
# cp /opt/ansible/ansible-1.7.2/examples/ansible.cfg /etc/ansible/ansible.cfg 
# vim /etc/ansible/ansible.cfg 
…… 
private_key_file = /root/.ssh/id_rsa 
…… 
 
## 主机组定义 
 
# vim /etc/ansible/hosts 
[hwb_cluster] 
10.150.xx.34 
10.150.xx.51 
10.150.xx.59 
10.150.xx.61 
10.150.xx.63 
10.150.xx.88 
10.150.xx.89 

(3)、简单测试

# ansible hwb_cluster -m command -a 'uptime' 

如何通过Ansible来管理上千台服务器??

Ansible适用于管理多台服务器,在ansible主机上执行对应的命令实际上是通过ssh协议到对应的受控服务器上执行命令,省掉了我们很多不必要的工作,很方便,如果大家对自动化运维感兴趣的话可以自己试一下,这篇文档入门是完全没问题的,后面就要去学一下playbooks语法来写脚本了。


以上所述就是小编给大家介绍的《如何通过Ansible来管理上千台服务器??》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

The Lean Startup

The Lean Startup

Eric Ries / Crown Business / 2011-9-13 / USD 26.00

更多中文介绍:http://huing.com Most startups fail. But many of those failures are preventable. The Lean Startup is a new approach being adopted across the globe, chan ging the way companies are built and ......一起来看看 《The Lean Startup》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

html转js在线工具
html转js在线工具

html转js在线工具