企业—ansible模块应用

ansible 默认提供了很多模块来供我们使用。

在 Linux 中,我们可以通过 ansible-doc -l 命令查看到当前 ansible 都支持哪些模块

通过ansible-doc -s 模块名 又可以查看该模块有哪些参数可以使用。

1.ansible常用的几个模块及其相应的参数设置

copy file ron group user yum service script ping command raw get_url



ansible-inventory:定义主机
ansible-playbook:角色指定
ansible-doc:文档
ansible-vault:加密解秘用到

-m 匹配默认的命令模块
-a 指定的模块参数
-f 10个线程并发操作默认为5个
-m shell :运行shell脚本

1.模块的文档查看及其指定模块的参数查看相应的被管理节点

[devops@server1 ansible]$ ansible-doc copy   查看copy模块的帮助文档
[devops@server1 ansible]$ ansible test -a 'df -h'  查看定义的test主机上的挂载使用情况

企业—ansible模块应用_第1张图片

2.copy模块的应用

用法

src :本地文件路径,可以是绝对和相对
dest= :不可省,如果src是目录,则dest也是目录。只能是绝对路径
group :指明文件属组
mode :指明权限
owner :指明所有者
content :直接写出内容,并将其复制给远程主机

//复制本地文件到远端主机
企业—ansible模块应用_第2张图片

在这里插入图片描述

//直接写出复制到远端主机的内容

企业—ansible模块应用_第3张图片

3.file模块的应用

用法

//创建链接文件
path=/PATH/TO/SOMEFILE src=/PATH/TO/SOMEFILE state=link
path指向的路径生成一个链接文件,链接文件指向src指向的路径。
//创建目录
path=/PATH/TO/SOMEFILE state=directory
//删除文件
path=/PATH/TO/SOMEFILE state=absent (也可以使用present表示添加文件)

//修改远程主机文件的相应权限

企业—ansible模块应用_第4张图片

//创建目录

企业—ansible模块应用_第5张图片

企业—ansible模块应用_第6张图片

//删除文件

企业—ansible模块应用_第7张图片

3.yum模块

进行安装相应的软件时首先会做采集动作,如果安装的软件已经存在就不会进行安装

用法:

name= : 指明管理程序包包名
state :present,installed表示安装程序包,latest表明安装最新版本;absent和removed表示卸载安装包,默认是安装最新版本

准备:
//在被管理节点server2,server3配置可以对其进行远程操作的sudo

[root@server2 ~]# vim /etc/sudoers
[root@server3 ~]# vim /etc/sudoers
文件添加内容如下:
93 devops        ALL=(ALL)       NOPASSWD: ALL

在这里插入图片描述

//进行安装时需要切换超级用户身份来执行,因此需要ansible管理节点server1上的devops用户下配置超级用户执行权限

[devops@server1 ansible]$ vim ansible.cfg 
[privilege_escalation]
become=True
become_method=sudo
become_user=root
become_ask_pass=False

企业—ansible模块应用_第8张图片

应用:

//在被管理节点安装httpd并且开启httpd

[devops@server1 ansible]$ ansible db -m yum -a 'name=httpd state=present'
[devops@server1 ansible]$ ansible db -m service -a 'name=httpd state=started'

企业—ansible模块应用_第9张图片

企业—ansible模块应用_第10张图片

测试:

[devops@server1 ansible]$ curl server3  //测试默认发布页面
[devops@server1 ansible]$ ansible db -m copy -a 'content="www.westos.org\n"  dest=/var/www/html/index.html'
[devops@server1 ansible]$ curl server3    //测试
www.westos.org

企业—ansible模块应用_第11张图片
企业—ansible模块应用_第12张图片

在这里插入图片描述

4.service模块

用法:

name= :管理服务的名称
enabled : 是否开机启动
state : started/stopped启动或停止服务;restart重启服务;reloaded重新加载配置文件,注意如果服务没有起来会启动服务。

//在被管理节点开启火墙并且设置火墙开机自启

[devops@server1 ansible]$ ansible db -m service -a 'name=firewalld state=started'
[devops@server1 ansible]$ ansible db -m service -a 'name=firewalld state=started enabled=true

测试:再次访问server3发现访问不到

在这里插入图片描述

//重新添加火墙策略

[devops@server1 ansible]$ ansible db -m firewalld -a 'service=http state=enabled permanent=yes immediate=yes'   //添加火墙策略

企业—ansible模块应用_第13张图片

你可能感兴趣的:(企业—ansible模块应用)