Ansible自动化运维体系建设方案Word格式文档下载.docx

上传人:b****6 文档编号:21325453 上传时间:2023-01-29 格式:DOCX 页数:14 大小:652.51KB
下载 相关 举报
Ansible自动化运维体系建设方案Word格式文档下载.docx_第1页
第1页 / 共14页
Ansible自动化运维体系建设方案Word格式文档下载.docx_第2页
第2页 / 共14页
Ansible自动化运维体系建设方案Word格式文档下载.docx_第3页
第3页 / 共14页
Ansible自动化运维体系建设方案Word格式文档下载.docx_第4页
第4页 / 共14页
Ansible自动化运维体系建设方案Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

Ansible自动化运维体系建设方案Word格式文档下载.docx

《Ansible自动化运维体系建设方案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《Ansible自动化运维体系建设方案Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

Ansible自动化运维体系建设方案Word格式文档下载.docx

按照以下现成的方式,1-2天即可完成ansible自动化运维体系的环境搭建!

服务端:

操作系统版本RHEL6.6x86_64,该操作系统自带Python2.6.6(要求Version>

=2.6)

由于是生产环境,无法连接外部互联网,所以整个安装过程,只能用安装包的方式安装。

1.配置YUM源(连接专门的YUM服务器):

没有YUM服务器也可以将RHEL6.6的ISO文件传至服务端,并挂载:

配置YUM源(本地)

2.ansible依赖模块及安装包的安装:

所有安装包地址:

ansible2.3.2所有安装包地

A.安装setuptools-7.0

B.安装pycrypto-2.6.1

安装包错解决:

报错1:

解决:

yuminstallgcc

报错2:

yuminstallpython-devel

最后pycrypto安装成功。

C.安装PyYAML模块

(1)yaml-0.1.5

(2)PyYAML-3.11

D.安装Jinja2模块

(1)MarkupSafe-0.9.3

(2)Jinja2-2.7.3

E.安装Paramiko模块

(1)ecdsa-0.11

(2)paramiko-1.15.1

F.安装ansible-stable-2.3

3.ansible客户端的需求

被管理的服务器需要安装python2.4以上的版本,如果python版本低于2.5,需要安装python-simplejson。

生产环境大部分为Linux和AIX,少量的Windows,由于Windows的业务系统少量且非重要,这里暂时不通过ansible去管理windows客户端,linux系统基本都安装了python,所以只需要关注python版本;

AIX基本都未安装python,所以需要批量安装python,后面将介绍方法。

Linuxpythonversion<

2.5的安装simplejson

simplejson-3.6.5

4.配置Ansible变量环境

Ansible配置文件ini格式存储配置数据的,在ansible中,几乎所有的配置项都可以通过ansible的playbook或者环境变量来重新赋值,在运行ansible命令时,命令将会按照预先设定的顺序查找配置文件,如下所示:

(1)ANSIBLE_CONFIG:

首先,ansible命令会检查该环境变量,及这个环境变量将指向的配置文件。

(2)./ansible.cfg:

其次,将会检查当前目录下的ansible.cfg配置文件。

(3)~/.ansible.cfg:

再次,将会检查当前用户home目录下的ansible.cfg配置文件。

(4)/etc/ansible/ansible.cfg:

最后,将会检查在用软件包管理工具安装ansible时自动产生的配置文件。

在这里我们在/etc/profile中,增加一行:

在用户登录时,都设置该环境变量。

由于是安装包安装,ansible的目录及相关文件都需要自己创建:

修改/etc/ansible/ansible.cfg的内容:

5.配置Ansible客户端主机环境

cat/etc/ansible/hosts

将生产所有服务器的IP地址按照以下格式加入hosts文件

[业务系统名称代码_x86]

ipx.x.x.x

[业务系统名称代码_aix]

这样的目的是为了区分不同业务系统,不同操作系统类别,ansible在执行命令时,可以直接:

去对该业务系统下的所有主机批量执行命令,也可以:

对该业务系统下的所有x86主机批量执行命令,还可以:

对所有x86主机批量执行命令。

这一切都可以在你的掌控下,这里只是列举了我们的做法。

6.配置Ansiblessh互信

在ansible服务端生成sshpublic和privatekey:

将sshpublickey下发到被管节点的.ssh目录:

为了提高效率,可以将所有需要添加互信的client的ip地址编入文件/tmp/clienthosts.txt

然后每个建立互信过程时,输入“yes”和client密码,这样下次服务端就可以直接通过ssh连接客户端了。

7.Ansible服务端与客户端连通性测试

查看ansible版本:

测试ansible服务端与客户端连通性:

这时由于并非所有客户端都具备相应的条件,要么python未安装、要么python版本不符合要求,要么没有安装ssh等,会报如下错误:

客户端python版本不符合要求。

客户端未安装ssh

客户端未安装python

如果遇到这些报错,这里只需要按照下面的批量安装方式安装即可。

8.ansible连接客户端过程耗时过长问题

在测试过程中,发现有一个问题非常困扰,就是创建ssh通道很慢,虽然ansible在同一个task里面是并行的控制多台受控端,但是每一个task都需要和受控端创建ssh通道,非常影响效率,于是翻了下ansibel的官方网站,有说过openssh的controlpersist特性可以优化,其实就是持久化sshsocket,一次验证多次通信,并且只需要修改ansiblesshclient的配置即可,但是这个特性需要比较新的openssh的版本。

在解决问题之前,查看了下openssh的版本:

这次需要将openssh版本升级到OpenSSH_6.7p1,OpenSSL版本不变,升级过程如下:

(1)查看是否缺少依赖包:

缺少了依赖包,可以通过YUM源直接安装这些缺少的包

(2)上传安装包:

openssh-6.7p1.tar.gz

(3)备份ssh:

(4)编译安装新版本openssh

(5)卸载旧版本openssh

(6)安装新版本openssh

(7)查看是否升级到了新版本

(8)复制启动脚本到/etc/init.d、

(9)将sshd加入开机自启动

(10)启动sshd

(11)添加openssh的controlmaster的配置

验证,未持久化socket前,需要13秒

持久化后,只需要1.5秒,满足需求,在进程数量调上去后,运行命令的并发速度还是不错的。

9.AIX操作系统python的批量安装

(1)将AIXpython的安装文件传至ansible服务端的/tmp目录:

gdbm-1.8.3-2.aix5.1.ppc.rpm

readline-4.3-2.aix5.1.ppc.rpm

expat-2.0.1-2.aix5.3.ppc.rpm

python-2.6.2-2.aix6.1.ppc.rpm

(2)编辑文件/tmp/clienthosts_aix.txt将所有AIX的IP地址输入至该文件,并运行命令:

(3)检查AIX客户端是否已经安装了python

如果安装了python,版本也大于等于2.6,可以重新编辑/tmp/clienthosts_aix.txt将该ip地址去掉。

(4)未安装python的AIX客户端开始安装:

由于ansible服务端需要和安装了python的客户端才能通信,但是在客户端没有安装python前,可以通过ansibel的raw模块直接通信,并安装python,用这种方式实现批量安装的目的。

10.Linux批量安装simplejson

由于Linux默认已经安装了python,这里只需要关注Linux的python版本即可,对于python版本<

2.5的,可以批量安装simplejson:

(1)将simplejson-3.6.5.tar.gz传至ansible服务端/tmp目录

(2)拷贝simplejson-3.6.5.tar.gz至需要安装的客户端

(3)安装simplejson

批量安装都是用类似的方法,这里也不再一一举例。

11.ansible模块介绍:

至此,整个生产环境ansible自动化运维体系的相关环境已经搭建完成,可以开始尽情的表演了,不过要很好的运用ansible还需要掌握一些ansible的模块,下面简要介绍如下:

(1)Setup:

用来查看远程主机的一些基本信息

这个模块还是很强大的,基本所有操作系统的信息、参数等都可以通过这个模块查到。

(2)Ping:

用来测试远程主机的运行状态

(3)File:

设置文件的属性

比如创建文件符号链接:

相关选项如下:

force:

需要在两种情况下强制创建软链接,一种是源文件不存在,但之后会建立的情况下;

另一种是目标软链接已存在,需要先取消之前的软链,然后创建新的软链,有两个选项:

yes|no

group:

定义文件/目录的属组

mode:

定义文件/目录的权限

owner:

定义文件/目录的属主

path:

必选项,定义文件/目录的路径

recurse:

递归设置文件的属性,只对目录有效

src:

被链接的源文件路径,只应用于state=link的情况

dest:

被链接到的路径,只应用于state=link的情况

state:

directory:

如果目录不存在,就创建目录

file:

即使文件不存在,也不会被创建

link:

创建软链

hard:

创建硬链接

touch:

如果文件不存在,则会创建一个新的文件,如果文件或目录已存在,则更新其最后修改时间

absent:

删除目录、文件或者取消链接文件

(4)Copy:

复制文件到远程主机

比如将本地文件复制到客户端:

backup:

在覆盖之前,将源文件备份,备份文件包含时间信息。

有两个选项:

content:

用于替代“src”,可以直接设定指定文件的值

必选项。

要将源文件复制到的远程主机的绝对路径,如果源文件是一个目录,那么该路径也必须是个目录

directory_mode:

递归设定目录的权限,默认为系统默认权限

如果目标主机包含该文件,但内容不同,如果设置为yes,则强制覆盖,如果为no,则只有当目标主机的目标位置不存在该文件时,才复制。

默认为yes

others:

所有的file模块里的选项都可以在这里使用

被复制到远程主机的本地文件,可以是绝对路径,也可以是相对路径。

如果路径是一个目录,它将递归复制。

在这种情况下,如果路径使用“/”来结尾,则只复制目录里的内容,如果没有使用“/”来结尾,则包含目录在内的整个内容全部复制,类似于rsync。

(5)Command:

在远程主机上执行命令

比如查看某个客户端的日期:

值得注意的是,ansibel默认的模块是command,所以上面的命令可以简化为:

(6)Shell:

切换到某个shell执行指定的指令,参数与command相同。

与command不同的是,此模块可以支持命令管道,同时还有另一个模块也具备此功能:

raw

比如说在服务端创建一个脚本,然后通过copy模块将此脚本分发到所有客户端,然后再通过shell模块在所有客户端执行:

```

ansibleall-mshell-a"

/tmp/test.sh"

(7)其他常用模块:

service:

系统服务管理

cron:

计划任务管理

yum:

yum软件包安装管理

synchronize:

使用rsync同步文件

user:

系统用户管理

系统用户组管理

(8)更多模块用命令:

ansible-doc-l参考

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 工学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1