自动化运维工具Ansible详细部署.docx
- 文档编号:2870180
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:14
- 大小:1.33MB
自动化运维工具Ansible详细部署.docx
《自动化运维工具Ansible详细部署.docx》由会员分享,可在线阅读,更多相关《自动化运维工具Ansible详细部署.docx(14页珍藏版)》请在冰豆网上搜索。
自动化运维工具Ansible详细部署
==========================================================================================
一、基础介绍
==========================================================================================
1、简介
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible是基于模块工作的,本身没有批量部署的能力。
真正具有批量部署的是ansible所运行的模块,ansible只是提供一种框架。
主要包括:
(1)、连接插件connectionplugins:
负责和被监控端实现通信;
(2)、hostinventory:
指定操作的主机,是一个配置文件里面定义监控的主机;
(3)、各种模块核心模块、command模块、自定义模块;
(4)、借助于插件完成记录日志邮件等功能;
(5)、playbook:
剧本执行多个任务时,非必需可以让节点一次性运行多个任务。
2、总体架构
3、特性
(1)、noagents:
不需要在被管控主机上安装任何客户端;
(2)、noserver:
无服务器端,使用时直接运行命令即可;
(3)、modulesinanylanguages:
基于模块工作,可使用任意语言开发模块;
(4)、yaml,notcode:
使用yaml语言定制剧本playbook;
(5)、sshbydefault:
基于SSH工作;
(6)、strongmulti-tiersolution:
可实现多级指挥。
4、优点
(1)、轻量级,无需在客户端安装agent,更新时,只需在操作机上进行一次更新即可;
(2)、批量任务执行可以写成脚本,而且不用分发到远程就可以执行;
(3)、使用python编写,维护更简单,ruby语法过于复杂;
(4)、支持sudo。
5、任务执行流程
说明:
(1)、以上内容大多是基于他人分享的基础上总结而来,学习借鉴之用;
(2)、本次安装基于CentOS6.4 系统环境。
==========================================================================================
二、Ansible基础安装与配置
==========================================================================================
1、Ansible基础安装
(1)、python2.7安装
https:
//www.python.org/ftp/python/2.7.8/Python-2.7.8.tgz
#tarxvzfPython-2.7.8.tgz
#cdPython-2.7.8
#./configure--prefix=/usr/local
#make--jobs=`grepprocessor/proc/cpuinfo|wc-l`
#makeinstall
## 将python头文件拷贝到标准目录,以避免编译ansible时,找不到所需的头文件
#cd/usr/local/include/python2.7
#cp-a./*/usr/local/include/
## 备份旧版本的python,并符号链接新版本的python
#cd/usr/bin
#mvpythonpython2.6
#ln-s/usr/local/bin/python
## 修改yum脚本,使其指向旧版本的python,已避免其无法运行
#vim/usr/bin/yum
#!
/usr/bin/python --> #!
/usr/bin/python2.6
(2)、setuptools模块安装
https:
//pypi.python.org/packages/source/s/setuptools/setuptools-7.0.tar.gz
#tarxvzfsetuptools-7.0.tar.gz
#cdsetuptools-7.0
#pythonsetup.pyinstall
(3)、pycrypto模块安装
https:
//pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.1.tar.gz
#tarxvzfpycrypto-2.6.1.tar.gz
#cdpycrypto-2.6.1
#pythonsetup.pyinstall
(4)、PyYAML模块安装
http:
//pyyaml.org/download/libyaml/yaml-0.1.5.tar.gz
#tarxvzfyaml-0.1.5.tar.gz
#cdyaml-0.1.5
#./configure--prefix=/usr/local
#make--jobs=`grepprocessor/proc/cpuinfo|wc-l`
#makeinstall
https:
//pypi.python.org/packages/source/P/PyYAML/PyYAML-3.11.tar.gz
#tarxvzfPyYAML-3.11.tar.gz
#cdPyYAML-3.11
#pythonsetup.pyinstall
(5)、Jinja2模块安装
https:
//pypi.python.org/packages/source/M/MarkupSafe/MarkupSafe-0.9.3.tar.gz
#tarxvzfMarkupSafe-0.9.3.tar.gz
#cdMarkupSafe-0.9.3
#pythonsetup.pyinstall
https:
//pypi.python.org/packages/source/J/Jinja2/Jinja2-2.7.3.tar.gz
#tarxvzfJinja2-2.7.3.tar.gz
#cdJinja2-2.7.3
#pythonsetup.pyinstall
(6)、paramiko模块安装
https:
//pypi.python.org/packages/source/e/ecdsa/ecdsa-0.11.tar.gz
#tarxvzfecdsa-0.11.tar.gz
#cdecdsa-0.11
#pythonsetup.pyinstall
https:
//pypi.python.org/packages/source/p/paramiko/paramiko-1.15.1.tar.gz
#tarxvzfparamiko-1.15.1.tar.gz
#cdparamiko-1.15.1
#pythonsetup.pyinstall
(7)、simplejson模块安装
https:
//pypi.python.org/packages/source/s/simplejson/simplejson-3.6.5.tar.gz
#tarxvzfsimplejson-3.6.5.tar.gz
#cdsimplejson-3.6.5
#pythonsetup.pyinstall
(8)、ansible安装
#tarxvzfansible-1.7.2.tar.gz
#cdansible-1.7.2
#pythonsetup.pyinstall
2、Ansible配置
(1)、SSH免密钥登录设置
## 生成公钥/私钥
#ssh-keygen-trsa-P''
## 写入信任文件(将/root/.ssh/id_rsa_storm1.pub分发到其他服务器,并在所有服务器上执行如下指令):
#cat/root/.ssh/id_rsa_storm1.pub>>/root/.ssh/authorized_keys
#chmod600/root/.ssh/authorized_keys
(2)、ansible配置
#mkdir-p/etc/ansible
#vim/etc/ansible/ansible.cfg
……
remote_port=36000
private_key_file=/root/.ssh/id_rsa_storm1
……
## 主机组定义
#vim/etc/ansible/hosts
[storm_cluster]
10.223.55.100
10.223.55.101
10.223.38.226
10.223.38.227
10.223.39.216
10.223.25.123
(3)、简单测试
#ansiblestorm_cluster-mcommand-a'uptime'
说明:
第一次运行时,需要输入一下“yes”【进行公钥验证】,后续无需再次输入。
## 再次运行
#ansiblestorm_cluster-mcommand-a'uptime'
3、常用模块使用
(1)、setup
## 用来查看远程主机的一些基本信息
#ansiblestorm_cluster-msetup
(2)、ping
## 用来测试远程主机的运行状态
#ansiblestorm_cluster-mping
(3)、file
## 设置文件的属性
相关选项如下:
force:
需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:
yes|no
group:
定义文件/目录的属组
mode:
定义文件/目录的权限
owner:
定义文件/目录的属主
path:
必选项,定义文件/目录的路径
recurse:
递归设置文件的属性,只对目录有效
src:
被链接的源文件路径,只应用于state=link的情况
dest:
被链接到的路径,只应用于state=link的情况
state:
directory:
如果目录不存在,就创建目录
file:
即使文件不存在,也不会被创建
link:
创建软链接
hard:
创建硬链接
touch:
如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间
absent:
删除目录、文件或者取消链接文件
示例:
## 远程文件符号链接创建
#ansiblestorm_cluster-mfile-a"src=/etc/resolv.confdest=/tmp/resolv.confstate=link"
## 远程文件信息查看
#ansiblestorm_cluster-mcommand-a"ls–al/tmp/resolv.conf"
##
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动化 工具 Ansible 详细 部署