Ansible的常用模块

1、ansible实现管理的方式
Ad-Hoc #利用ansible命令直接完成管理,主要用于临时命令使用场景
playbook #ansible脚本,主要用于大型项目场景,需前期的规划

2、Ad-Hoc执行方式中如何获取帮助
ansible-doc #显示模块帮助指令

格式:
ansible-doc 参数 模块

常用参数
-l #列出可用模块
-s #显示指定模块的playbook片段
在这里插入图片描述

3、ansible命令运行方式及常用参数

格式:
ansible 清单 -m 模块 -a 模块参数

常用参数
–version #显示版本
-m module #指定模块,默认为command模块
-v #详细过程,-v、-vv更详细过程
–list #显示主机列表,也可以用–list-hosts
-k #提示输入ssh连接密码,默认key认证
-C #预执行命令检测
-T #执行命令的超时时间。默认10秒
-u #指定远程执行的用户
-b #执行sudo切换身份操作
–become-user=USERNAME #指定sudo的用户
-K #提示输入sudo密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、ansible的基本颜色代表
绿色 #执行成功但未对远程主机做任何改变
黄色 #执行成功并对远程主机做改变
红色 #执行失败

5、ansible中的常用模块
1)command
功能:在远程主机执行命令,此模块为默认模块

常用参数
chdir	#执行命令前先进入到指定目录
cmd	#运行命令指定
creates	#如果文件存在将不执行
removes	#如果文件存在将运行
free_from	#在远程主机中执行的命令,此参数不需要参加
#注意:Linux中的许多通配符在command模块中不支持

2)shell
功能:和command功能类似

常用参数:
chdir	#执行命令前先进入到指定目录
cmd	#运行命令指定
creates	#如果文件存在将不执行
removes	#如果文件存在将运行
free_from	#在远程主机中执行的命令,此参数不需要参加
executable 	#指定执行环境,默认为sell

ansible westos -m command -a ‘chdir=/etc cat passwd’
在这里插入图片描述
ansible westos -m command -a ‘creates=/mnt/file chdir=/etc cat passwd’
在这里插入图片描述
在这里插入图片描述
ansible westos -m shell -a ‘ps ax | grep $$’
ansible westos -m shell -a ‘executable=/bin/bash ps ax | grep $$’
在这里插入图片描述

3)、script
功能:在ansible主机中写好的脚本在受控主机中执行

vim /mnt/westos.sh
#!/bin/bash
echo $HOSTNAME
在这里插入图片描述
ansible all -m script -a “/mnt/westos.sh” -k
在这里插入图片描述
4)、copy
功能:从ansible主机复制文件到受控主机

常用参数
src 	#源文件
dest	#目的地文件
owner	#指定目的地文件所有人
group	
mode	#指定目的地文件权限
backup=yes	#当受控主机中存在文件时备份文件
content	#指定文本内容直接在受控主机中生成文件

控制端:
ansible westos -m copy -a ‘src=/mnt/westos dest=/mnt mode=755 owner=westos group=westos’
在这里插入图片描述
受控端:
在这里插入图片描述
控制端:
ansible all -m copy -a “content=‘hello westos\n’ dest=/mnt/westosfile1 owner=root mode=600”
在这里插入图片描述
受控端:
在这里插入图片描述
控制端:
在这里插入图片描述
ansible westos -m copy -a ‘src=/mnt/westos dest=/mnt mode=755 owner=westos group=westos backup=yes’
在这里插入图片描述
受控端:
在这里插入图片描述
5)、fetch

功能:从受控主机把文件复制到ansiable主机,但不支持目录

常用参数:
src	#受控主机的源文件
dest	#本机目录
flat	#基本名称功能

控制端:
ansible westos -m fetch -a ‘src=/etc/hostname dest=/mnt/test flat=yes’ #当你的dest指向的是个文件时,要加上flat=yes,表明指向的是个文件
在这里插入图片描述
在这里插入图片描述

ansible westos -m fetch -a ‘src=/etc/hostname dest=/mnt/’ #当你的dest指向的是个目录时,不需要加flat
在这里插入图片描述
在这里插入图片描述
6)、file
功能:设置文件属性

常用参数
path	#指定文件名称
stste     #指定操作状态
	touch	#建立
	absent	#删除
	directory	#目录
	link	#软链接
	hard	#硬链接
mode	#设定权限
owner	#设定文件用户
group	#设定文件组
src	#源文件
dest	#目标文件
recurse=yes	#递归更改

ansible westos -m shell -a ‘ls -l /mnt’
在这里插入图片描述
ansible westos -m shell -a ‘rm -fr /mnt/*’
在这里插入图片描述
ansible westos -m file -a ‘path=/mnt/westos state=touch’
在这里插入图片描述
在这里插入图片描述
ansible westos -m file -a ‘path=/mnt/westosfile state=touch mode=777 owner=westos group=westos’
在这里插入图片描述
在这里插入图片描述
ansible westos -m file -a ‘src=/mnt/westosfile dest=/mnt/westoslee state=link’ #建立软链接,文件节点号不一致
在这里插入图片描述
在这里插入图片描述

ansible westos -m file -a ‘path=/mnt/westos state=absent’
在这里插入图片描述
ansible westos -m file -a ‘path=/mnt/westos state=directory’
在这里插入图片描述
在这里插入图片描述
ansible westos -m file -a ‘path=/mnt/westos/file state=touch’
在这里插入图片描述
在这里插入图片描述
ansible westos -m file -a ‘path=/mnt/westos mode=777’ #只更改了目录权限
在这里插入图片描述
在这里插入图片描述
ansible westos -m file -a ‘path=/mnt/westos mode=777 recurse=yes’ #此时目录底下的文件权限也更改了
在这里插入图片描述
在这里插入图片描述
ansible westos -m file -a ‘src=/mnt/westosfile dest=/mnt/westostest state=hard’ #建立硬链接,可观察到文件节点号一致
在这里插入图片描述
在这里插入图片描述
7)、unarchive
功能:解压缩

常用参数:
copy	#默认为yes,从ansible主机复制到受控主机
	#设定为no,从受控主机中寻找src源文件
remote_src	#功能同copy相反
	#设定为yes,表示包在受控主机
	#设定为no表示包在ansible主机
src	#包路径,可以是ansible主机也可以是受控主机
dest	#受控主机目录
mode	#加压后文件权限,当COPY=no时不生效,copy必须等于yes

在这里插入图片描述
在这里插入图片描述
tar zcvf /mnt/westos.tar.gz /etc #将ansible主机端/etc打包
在这里插入图片描述
ansible westos -m unarchive -a ‘src=/mnt/westos.tar.gz dest=/mnt owner=westos’
#将ansible主机的westos.tar.gz解压到受控主机的/mnt底下
在这里插入图片描述
在这里插入图片描述
ansible westos -m unarchive -a ‘src=/mnt/westos.tar.gz dest=/mnt mode=1777’
#指定权限为1777,注意:只有当压缩文件是在ansible主机中时才可指定权限
在这里插入图片描述
在这里插入图片描述
8)、archive
作用:压缩

常用参数:
path 	#打包目录名称
dest	#声明打包文件名称
format	#打包格式
owner	#指定文件所属人
mode	#指定文件权限

ansible westos -m archive -a ‘path=/etc dest=/mnt/etc.tar.gz format=gz owner=westos mode=700’
#将受控主机的/etc打包到/mnt/底下的etc.tar.gz
在这里插入图片描述
在这里插入图片描述
9)、hostname
#作用:管理主机名称

常用参数
name	#指定主机名称

ansible westos -m hostname -a ‘name=lee.liumeng.com’
在这里插入图片描述
在这里插入图片描述
10)、cron
作用:计划任务

常用参数:
minute	#分钟
hour	#小时
day	#天
month	#月
weekday	#周
name	#任务名称
job	#任务脚本或命令
disabled	#yes禁用计划任务
#no启动计划任务
state	#absent删除计划任务

ansible westos -m cron -a ‘job=date name=westostest minute=*/2’ #设定计划任务
在这里插入图片描述
在这里插入图片描述
ansible westos -m cron -a ‘job=date name=westostest disabled=yes’ #禁用计划任务
在这里插入图片描述
在这里插入图片描述
ansible westos -m cron -a ‘job=date name=westostest disabled=no’ #启用计划任务
在这里插入图片描述
在这里插入图片描述
ansible westos -m cron -a ‘job=date name=westostest state=absent’ #删除计划任务
在这里插入图片描述
在这里插入图片描述
11)、yum_repository
作用:配置系统软件仓库文件

常用参数:
name	#指定仓库名称
baseurl	#指定源路径
description	#指定仓库描述
file	#指定仓库文件名称
enabled	#仓库是否启用
gpgcheck	#仓库是否检测gpgcheck
state	#absent为删除

ansible westos -m yum_repository -a ‘name=AppStream baseurl=http://172.25.254.250/rhel8.2/AppStream description=westosAppStream gpgcheck=no file=lee’
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ansible westos -m yum_repository -a ‘name=AppStream baseurl=http://172.25.254.250/rhel8.2/AppStream description=westosAppStream gpgcheck=no file=lee state=absent’
在这里插入图片描述
在这里插入图片描述
12)、dnf
作用:管理系统中的dnf仓库及管理软件

常用参数:
name	#指定包
state	#指定动作
	present	#安装
	latest	#更新
	absent	#删除
list	#列出指定信息
	httpd
	installed
	all
	available
disable_gpg_check	#禁用gpgkey检测
enablerepo	#指定安装包来源
disablerepo	#禁用安装包来源

ansible westos -m dnf -a ‘name=vsftpd state=latest’ #安装vsftpd
在这里插入图片描述
ansible westos -m dnf -a ‘name=“httpd,dhcp-server” state=latest disable_gpg_check=yes’ #安装httpd和dhcp
在这里插入图片描述
ansible westos -m dnf -a ‘name=“httpd” state=absent autoremove=no’ #删除httpd服务,但不删除它的依赖性软件
在这里插入图片描述
ansible westos -m dnf -a ‘name=“httpd” state=absent autoremove=yes’ #删除httpd并且删除httpd的依赖性软件
在这里插入图片描述
ansible westos -m dnf -a ‘name="@Virtualization Tools" state=present disable_gpg_check=yes’
#安装虚拟软件组
在这里插入图片描述
ansible westos -m dnf -a ‘name=“http://172.25.254.250/software/linuxqq_2.0.0-b2-1084_x86_64.rpm” state=present disable_gpg_check=yes’ #从网络源安装linuxqq软件
在这里插入图片描述
13)、service
作用:管理系统服务状态

常用参数
name	#指定服务名称
state	#指定对服务的动作
	#started
	#stopped
	#restarted
	#reloaded

enabled	#设定服务开机是否启动
#yes设定开机启动
#no开机不启动

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
14)、firewalld

常用参数:
zone	#火墙的域
service	#服务名称
permanent	#永久生效
state
	enabled	#允许
	disabled	#拒绝
immediate	#立即生效

ansible westos -m firewalld -a ‘zone=public service=http permanent=yes state=enabled immediate=yes’
在这里插入图片描述
在这里插入图片描述
15)、user
功能:此模块可以帮助我们管理远程主机上的用户,比如创建用户,修改用户,删除用户,为用户创建密钥对等操作

常用参数:
name	#必须参数,用于指定要操作的用户名称
group#指定用户所在的基本组
groups	#指定用户所在的附加组
append	#指定添加附加组,默认为no
shell	#用于指定用户默认shell
uid	#指定用户的uid号
commend	#指定用户的注释信息
state	#用于指定是否存在于远程主机
	#present建立
	#adsent删除
remove	#当删除用户时删除用户家目录,默认值为no
password	#此参数用于指定用户的密码,但密码为明文
#可以用openssl password -6 等密码生成加密字符
generaye_ssh_key	#生成sshkey

ansible westos -m user -a ‘name=test shell=/bin/sh uid=6666 group=72 group=‘westos’ comment=“test user” state=present’
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ansible westos -m user -a ‘name=test shell=/bin/sh uid=6666 group=72 groups=‘apache’ comment=“test user” state=present’
在这里插入图片描述
在这里插入图片描述
ansible westos -m user -a ‘name=test shell=/bin/sh uid=6666 group=72 groups=‘dhcpd’ append=yes comment=“test user” state=present’
#再次添加附加组,append=yes
在这里插入图片描述
在这里插入图片描述
openssl passwd -6
在这里插入图片描述
ansible westos -m user -a ‘name=test shell=/bin/sh uid=6666 group=72 groups=‘root’ append=yes comment=“test user” state=present password="$6$eLAP493/849nTbaw$rKDjSIV/mhOURJDkp6.aPESmSrcEv7N8kt10z9UT37G/LscKpe1hv53WuU6oJFbxmHOmGwj7Zq6g4MsnQpTvU1"’
在这里插入图片描述
在这里插入图片描述

ansible westos -m user -a ‘name=test shell=/bin/sh uid=6666 group=72 groups=‘root’ append=yes comment=“test user” state=present password="$6$eLAP493/849nTbaw$rKDjSIV/mhOURJDkp6.aPESmSrcEv7N8kt10z9UT37G/LscKpe1hv53WuU6oJFbxmHOmGwj7Zq6g4MsnQpTvU1" generate_ssh_key=true’
在这里插入图片描述
ansible westos -m shell -a ‘ls /home/test/.ssh’
在这里插入图片描述

16)、group
作用:管理远程主机上的组

常用参数:
name	#用于指定要操作的组的名称
state	#用于指定组的状态
	present	#建立
	absent	#删除
gid	#用于指定组的gid

ansible westos -m group -a ‘name=lee state=present’
在这里插入图片描述
在这里插入图片描述
ansible westos -m group -a ‘name=lee state=present gid=2000’
在这里插入图片描述
在这里插入图片描述

17)、lineinfile

path	#指定要操作的文件
line	#指定文本内容
regexp	#使用正则表达式匹配对应的行,当替换文本时
#如果有多行文本都能被匹配,则只有最后面被匹配到的那行文字才会被替换
#当删除文本时,如果有多行文本匹配,那么这些行都会被删除
state	#当想要删除对应的文本时需要将state参数的值设置为adsent
#默认匹配值为present

backrefs	#当内容无匹配规则时不对文件做任何更改,默认值为no
#向后引用regexp变量信息

insertafter	#借助insertafter参数可以将文本插入到指定的行之后
#insertafter参数的值可以设置为EOF或者正则表达式

insertbefore #借助insertafter参数可以将文本插入到指定的行之前
#insertbefore参数的值可以设置为EOF或者正则表达式

backup	#是否在修改文件之前对文件进行备份
create	#当要操作的文件并不存在时,是否创建对应的文件

ansible westos -m lineinfile -a ‘path=/mnt/westos line=“hello westos”’ #westos中插入hello westos语句
在这里插入图片描述
ansible westos -m lineinfile -a ‘path=/mnt/westos line=“hello test”’
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ansible westos -m lineinfile -a ‘path=/mnt/westos line=“hello qq” insertafter=“westos”’
#在westos那一行之后插入hello qq
在这里插入图片描述
在这里插入图片描述
ansible westos -m lineinfile -a ‘path=/mnt/westos line=“hello linux” insertbefore=“test”’
#在test那一行前插入hello linux
在这里插入图片描述
在这里插入图片描述
ansible westos -m lineinfile -a ‘path=/mnt/westos regexp="(h.{4}).*(w.{5})" line="\1" backrefs=yes’
#截取以h为开头后面4个字母,中间为任意,后面以w为开头加5个字母的字符串中,第一部分
#在hello westos这一句中,只剩下了hello
在这里插入图片描述
在这里插入图片描述
ansible westos -m lineinfile -a ‘path=/mnt/westos line=“hello test1” regexp=“test”’
#截取test那一行替换为hello test1
在这里插入图片描述
在这里插入图片描述
ansible westos -m lineinfile -a ‘path=/mnt/westos regexp=“hello” state=absent backup=yes’
#在删除含有hello语句的westos文件前,先备份
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

18)、replace
作用:可根据我们指定的正则表达式替换文件中的字符串,文件中的所有被匹配到的字符串都会被替换

常用参数:
path	#指定要操作的文件
regexp	#指定一个正则表达式
#文件中与正则表达式匹配的字符串都会被替换
replace	#指定最终要替换成的字符串
backup	#是否在修改文件之前对文件进行备份,最好设置为yes

ansible westos -m replace -a ‘path=/mnt/westos regexp=“hello” replace=“westos” backup=yes’
在这里插入图片描述
在这里插入图片描述
19)、setup
作用:用于收集远程主机的信息

常用参数:
filter	#用于进行条件过滤。如果设置,仅返回匹配过滤条件的信息

ansible westos -m setup
在这里插入图片描述
ansible westos -m setup -a “filter=‘ansible_all_ipv4_addresses’”
在这里插入图片描述
20)、debug
作用:调试模块,用于在调试中输出信息

常用参数:
mag	#调试输出的信息
var	#将某个任务执行的输出作为变量传递给debug模块
#debug会将其直接打印输出
verbosity	#debug的级别(默认是0级,全部显示)

ansible westos -m debug -a “msg=‘hello world’”
在这里插入图片描述
ansible westos -m debug -a “msg=‘hello world’ verbosity=0”
ansible westos -m debug -a “msg=‘hello world’ verbosity=1”
在这里插入图片描述
vim westos.yml
在这里插入图片描述
在这里插入图片描述
ansible-playbook westos.yml
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值