Ansible的基础使用

Ansible作为一款自动化IT运维工具,具备非常出色的性能和功能。

安装包:补充进去YUM源进行安装的

ansible-2.4.2.0-2.el7.noarch.rpm

python2-jmespath-0.9.0-3.el7.noarch.rpm

python-httplib2-0.9.2-1.el7.noarch.rpm

python-paramiko-2.1.1-4.el7.noarch.rpm

python-passlib-1.6.5-2.el7.noarch.rpm
sshpass-1.06-2.el7.x86_64.rpm

一、环境准备,关闭firewalld,NetworkManager,selinux

1、准备6台服务器,对应IP为

192.168.1.51 ansible

192.168.1.52 web1

192.168.1.53 web2

192.168.1.54 db1

192.168.1.55 db2

192.168.1.56 cache

2、以ansible为管理节点,其他主机为托管节点。管理节点部署ssh免密登录托管节点

并且同步hosts文件

3、(非必须步骤)部署NTP服务器。做好管理节点与托管节点的时间同步。

二、安装Ansible

yum -y install ansible

三、修改配置,定义主机分组

ls /etc/ansible/

可以看到Ansible的主配置文件和主机定义文件,一般只需要修改主机定义文件

vim /etc/ansible/hosts

最后追加这些内容,web组有XX主机    db组有XX主机等信息,最后的那个是子组,子组里面可以囊括组

四、Ansible的基本操作

格式:

ansible 组 -m 模块 -a ‘调用的命令’

下面是各模块的测试截图

ansible-doc 模块      相当于man帮助,里面会罗列出此模块的介绍信息和例子

这个模块,是会把命令,在指定主机的home目录执行结果,我们登录web1查看,可以看到,tmp目录下并没有生成f100文件,在home目录下生成了

script模块的效果就是当前目录下的shell脚本,执行。

请注意标红的地方。这里有很大的疑问点。请留意。

ansible all -m shell -a 'cat /etc/sysconfig/network-scripts/ifcfg-eth0 > /root/eth0.txt'

所有托管节点的eth0这个文件,复制到root下的eth0.txt

查看一下

ansible all -m shell -a 'cat /root/eth0.txt'

lineinfile模块,通俗说就是行编辑模块,我们的目标是把ONBOOT的值,修改为no

ansible all -m lineinfile -a 'path=/root/eth0.txt regexp="^ONBOOT=" line="ONBOOT=no"'

replace模块,通俗说就是内容修改模块。我通常是把需要保留的字符,处理成一个整体,然后后面跟需要修改的值

NAME=eth0  把这个值改成happy

ansible all -m replace -a 'path=/root/eth0.txt regexp="^(NAME=).*" replace="\1happy"'

ansible all -m yum -a 'name="lftp" state=installed'

YUM模块,安装软件    state=removed  删除软件

 ansible web -m yum -a 'name="httpd" state=installed'

ansible web -m service -a 'name="httpd" enabled="yes" state=started'

service模块,服务模块,用于批量启动服务的

基本的Ansible使用,到这里结束

发布了73 篇原创文章 · 获赞 4 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_27592485/article/details/97429948