暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Ansible软件实践部署

蜜蜂点滴 2020-03-23
468

一、自动化运维介绍

1、SSH自动化运维

2003-2012年,通过在管理机创建统一的秘钥对,然后把公钥留在管理机上,公钥发到所有被管理的机器上,然后开发脚本实现批量管理。

2、CFEngine自动化运维

2007-2008年,流行的时间不长。

3、Puppet自动化运维

2011年开始,主要是一些传统的银行在使用。

4、Saltstack和ansible自动化运维

2012年开始,Python开发。

二、Ansible软件介绍

1、什么是ansible

    ansible是一个可以同时管理多个远程主机的软件。ansible通过ssh协议实现管理节点与远程节点之间的通信。理论上,只要是能通过ssh登录到远程主机来完成的操作,都可用通过ansible实现自动化操作。

    ansible可以管理的操作:批量复制,批量删除,批量修改,批量查看文件和目录,批量安装软件,批量启动服务等。

2、ansible好处

    简单方便容易学习 功能强大。

ansible有配置文件,可用多线程直接实现,不需要脚本,类似实时复制sersync。

    ansible的编排引擎可以出色地完成配置管理,流程管理,资源部署等多方面的工作。

    在云计算时代的浪潮中,基础架构必须满足按需自动伸缩、按使用量计费的基本特性,IT自动化运维软件就是最重要的必备工具之一。

三、ansible实践部署

1、服务器环境准备


2、安装软件

1)m01服务器:

安装软件前最好先检查一下是否已经安装:

#rpm -qa epel-release ansible libselinux-python 

#yum install epel-release -y  #<==安装epel源。

#yum install ansible -y          #<==安装批量管理Ansible软件。

#yum install libselinux-python -y #<==python依赖包软件。

查看ansible软件安装了哪些文件:

[root@m01 ~]# rpm -ql ansible

/etc/ansible                                    #<==Ansible软件程序目录。

/etc/ansible/ansible.cfg                #<==Ansible软件程序主配置文件,默认配置即可。

/etc/ansible/hosts                        #<==Ansible软件程序被管理节点主机列表清单文件。

/usr/bin/ansible                        #<==Ansible软件程序批量管理命令。

/usr/bin/ansible-playbook               #<==Ansible软件程序剧本执行命令。

2)nfs01、backup服务器:

#rmp -qa libselinux-python  #<==先检查一下是否安装

#yum install libselinux-python 

3、配置文件

1)m01服务器

①主机配置文件

#cp /etc/ansible/hosts{,.ori} #<==先备份配置文件。

#cat >/etc/ansible/hosts<<EOF

[ansitest]

172.16.1.31

172.16.1.41

EOF

②ansible的配置文件

#cat /etc/ansible/ansible.cfg #<==默认即可,不用修改。

③修改yum.conf

#vim /etc/yum.conf 

keepcache=1

2)nfs01、backup服务器

①修改yum.conf

#vim /etc/yum.conf 

keepcache=1

4、测试:执行远程管理命令

1)#ansible ansitest -m command -a "free -m"

都要输入密码,非常麻烦。如何不输入密码。

查看管理机本地存放秘钥文件:

#cat ~/.ssh/known_hosts #没有nfs01,backup服务器的秘钥。

分发公钥信息:

#shpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyCheck-ing=no" 172.16.1.41

#shpass -p123456 ssh-copy-id -f -i ~/.ssh/id_rsa.pub "-o StrictHostKeyCheck-ing=no" 172.16.1.31

如果机器非常多,可以用脚本批量处理。

再测试:#ansible ansitest -m command -a "free -m"

2)#ansible ansitest -m command -a "cat /etc/hat-release" -k -u root

    利用ansible命令,指定批量管理oldboy组中主机,利用-m指定模块,-a指定执行的命令,-u指定以什么身份远程登录。-k采用密码方式登录;

解决方法:加上密码

#vim /etc/ansible/hosts

[ansitest_pass]

172.16.1.31 ansible_ssh_user=root ansible_ssh_pass=123456

172.16.1.41 ansible_ssh_user=root ansible_ssh_pass=123456

在主机配置文件里指定用户和密码,执行命令时就不需要密码了。去掉-k -u root参数。# ansible ansitest -m command -a "cat /etc/redhat-release"


文章转载自蜜蜂点滴,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论