ansible中的常用模块合集

常用模块

  • 1. ansible实现管理的方式
  • 2. Ad-Hoc执行方式中如何获得帮助
  • 3. ansible命令运行方式及常用参数
  • 4.ansible的基本颜色信息
  • 5. 常用模块
    • 5.1 command
    • 5.2 shell 模块
    • 5.3 script模块
    • 5.4 copy模块
    • 5.5 fetch模块
    • 5.6 file
    • 5.7 unarchive模块
    • 5.8 archive
    • 5.9 hostname
    • 5.10 cron
    • 5.11 yum_repository
    • 5.12 dnf
    • 5.13 service
    • 5.14 user
    • 5.15 group
    • 5.16 lineinfile
    • 5.17 replace
    • 5.18 setup
    • 5.19 debug
    • 5.20 seboolean
    • 5.21 filesystem
    • 5.22 mount
    • 5.23 parted

1. ansible实现管理的方式

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

2. Ad-Hoc执行方式中如何获得帮助

- ansible-doc	##显示模块帮助的指令

- #格式
- ansible-doc [参数] [模块...]

- #常用参数
- 	-l		##列出可用模块
- 	-s		##显示指定模块的playbook片段

ansible中的常用模块合集_第1张图片ansible中的常用模块合集_第2张图片

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

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

- #常用参数
	--version	##显示版本
	-m module	##指定模块,默认为command模块
	-v			##详细过程 -vv -vvv更详细过程
	--list		##显示主机列表,也可以用--list-hosts
	-k			##提示输入ssh连接密码,默认key认证
	-C			##预执行检测
	-T			##执行命令的超时时间,默认10s
	-u			##指定远程执行的用户
	-b			##执行sudo切换身份操作(相当于ansible.cfg中的become参数)
	-become-user=USERNAME	##指定sudo的用户
	-K			##提示输入sudo密码(相当于ansible.cfg中的become_ask_pass参数)

ansible中的常用模块合集_第3张图片
在这里插入图片描述

ansible中的常用模块合集_第4张图片

4.ansible的基本颜色信息

- 绿色		##执行成功但没有对远程主机做任何改变
- 黄色		##执行成功并对远程主机做改变
- 红色		##执行失败

ansible中的常用模块合集_第5张图片

5. 常用模块

5.1 command

- #功能: 在远程主机执行命令,此模块为默认模块

- #常用参数
	chdir		##执行命令前先进入到指定目录
	cmd			##运行命令指定
	creates		##如果文件存在将不运行
	removes		##如果文件存在在将运行
	free_form	##在远程主机中执行的命令,此参数不需要加
#实例
	ansible all -m command -a "useradd lee" -u root -k
	ansible all -m command -a "userdel -r lee" -u root -k
	ansible all -m command -a "chdir=/etc cat passwd " -u root -k
	ansible all -m command -a "chdir=/etc creates=/etc/passwd cat passwd " -u root -k 
	ansible all -m command -a "chdir=/etc removes=/etc/passwd cat passwd " -u root -k
	
##注意##
	Linux中的很多通配符在command模块中不支持,如*等

ansible中的常用模块合集_第6张图片
ansible中的常用模块合集_第7张图片
ansible中的常用模块合集_第8张图片
ansible中的常用模块合集_第9张图片

5.2 shell 模块

- 功能:
- 和command功能类似
- 常用参数
-	chdir           ##执行命令前先进入到指定目录
-	cmd             ##运行命令指定
-	creates         ##如果文件存在将不运行
-	removes         ##如果文件存在在将运行
-	free_form 	##在远程主机中执行的命令,此参数不需要加
-	executable	##指定执行环境,默认为sh(比command多的参数)

-实例
-	ansible all -m shell -a "executable=sh ps ax | grep $$ " -k

ansible中的常用模块合集_第10张图片ansible中的常用模块合集_第11张图片
ansible中的常用模块合集_第12张图片

5.3 script模块

- 功能:
	在ansible主机中写好的脚本在受控主机中执行
	ansible-doc -s script  查看帮助
- 实例
-	vim /mnt/westos.sh
-		#!/bin/bash
-		echo $HOSTNAME
-
-	ansible all -m script -a "/mnt/westos.sh" -k

ansible中的常用模块合集_第13张图片
ansible中的常用模块合集_第14张图片

5.4 copy模块

- 功能
- 	从ansible主机复制文件到受控主机

- 常用参数
-	src			##源文件
-	dest		##目的地文件
-	owner		##指定目的地文件所有人
-	group		##指定目的地文件所有组
-	mode		##指定目的地文件权限
-	backup=yes	##当受控主机中存在文件时备份原文件(传送的文件名字和已有文件名字和冲突时)
-	content		##指定文本内容直接在受控主机中生成文件

- 实例
-	ansible all -m copy -a "src=/root/westos dest=/mnt/westos  owner=lee mode=777 backup=yes"
-	ansible all -m copy -a "content='hello westos\nhello linux\n' dest=/mnt/westosfile1 owner=lee mode=600"

ansible中的常用模块合集_第15张图片
ansible中的常用模块合集_第16张图片
ansible中的常用模块合集_第17张图片
ansible中的常用模块合集_第18张图片
backup

ansible中的常用模块合集_第19张图片ansible中的常用模块合集_第20张图片
content

ansible中的常用模块合集_第21张图片
ansible中的常用模块合集_第22张图片

5.5 fetch模块

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

- 常用参数
-	src			##受控主机的源文件
-	dest		##本机目录
-	flat		##可以直接拷贝文件,忽略文件的上层目录(基础名称功能)
- 实例
	ansible all -m fetch -a "src=/etc/hostname dest=/mnt" -k

ansible中的常用模块合集_第23张图片ansible中的常用模块合集_第24张图片

ansible中的常用模块合集_第25张图片

5.6 file

- 功能
- 	设置文件的属性

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

- 示例
	ansible all -m file -a 'path=/mnt/test.sh state=touch'
	ansible all -m file -a 'path=/mnt/test.sh state=absent'
	ansible all -m file -a 'path=/mnt/westos state=directory'
	ansible all -m file -a 'path=/mnt/westos state=directory mode=777 recurse=yes'
	ansible all -m file -a 'src=/mnt/file dest=/mnt/westos state=link'
	ansible all -m file -a 'src=/mnt/file dest=/mnt/westos1 state=hard'
	ansible all -m file -a 'path=/mnt/file state=touch owner=lee group=westos mode=777'

ansible中的常用模块合集_第26张图片
ansible中的常用模块合集_第27张图片
ansible中的常用模块合集_第28张图片ansible中的常用模块合集_第29张图片
ansible中的常用模块合集_第30张图片
ansible中的常用模块合集_第31张图片
ansible中的常用模块合集_第32张图片
ansible中的常用模块合集_第33张图片
ansible中的常用模块合集_第34张图片
ansible中的常用模块合集_第35张图片ansible中的常用模块合集_第36张图片

5.7 unarchive模块

- 功能
-		解压缩
- 常用参数
-	copy		##默认为yes 从ansible主机复制文件到受控主机
				##设定为no  从受控主机中寻找src源文件
-	remote_src	##功能同copy且相反
				##设定为yes 表示包在受控主机(包为压缩包)
				##设定为no表示包在ansible主机
-	src			##包路径,可以使ansible主机也可以使受控主机
-	dest		##受控主机目录
-	mode		##加压后文件权限
-	owner
-	group
-	list_files  ##显示压缩的文件列表信息
- 实例
	ansible all -m unarchive -a 'src=/mnt/etc.tar.gz dest=/mnt owner=lee' -k
	ansible all -m unarchive -a "src=/opt/etc.tar.gz dest=/mnt copy=no"

ansible中的常用模块合集_第37张图片ansible中的常用模块合集_第38张图片
ansible中的常用模块合集_第39张图片
ansible中的常用模块合集_第40张图片
ansible中的常用模块合集_第41张图片
ansible中的常用模块合集_第42张图片
ansible中的常用模块合集_第43张图片

5.8 archive

#作用
压缩

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

#实例
ansible all -m archive -a 'path=/etc dest=/opt/etc.tar.gz format=gz owner=lee mode=700' -k

ansible中的常用模块合集_第44张图片
ansible中的常用模块合集_第45张图片

5.9 hostname

#作用
管理主机名称

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

#实例
ansbile 172.25.254.100 -m hostname -a 'name=lee.westos.com'

ansible中的常用模块合集_第46张图片ansible中的常用模块合集_第47张图片

5.10 cron

- 作用
-	计划任务

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


- 实例
	ansible list1 -m cron -a "job='echo hello' name=test disable=yes" -k
	ansible list1 -m cron -a "job='echo hello' name=test disabled=yes" -k
	ansible list1 -m cron -a "job='echo hello' name=test state=absent" -k

ansible中的常用模块合集_第48张图片在这里插入图片描述

ansible中的常用模块合集_第49张图片
ansible中的常用模块合集_第50张图片ansible中的常用模块合集_第51张图片

ansible中的常用模块合集_第52张图片
ansible中的常用模块合集_第53张图片
ansible中的常用模块合集_第54张图片ansible中的常用模块合集_第55张图片

ansible中的常用模块合集_第56张图片
ansible中的常用模块合集_第57张图片在这里插入图片描述

ansible中的常用模块合集_第58张图片
ansible中的常用模块合集_第59张图片在这里插入图片描述

ansible中的常用模块合集_第60张图片
ansible中的常用模块合集_第61张图片

5.11 yum_repository

- 作用
-	配置系统软件仓库源文件

- 常用参数
	name		##指定仓库名称
	baseurl		##指定源路径
	description	##指定仓库描述
	file		##指定仓库文件名称
	enabled		##仓库是否启用
	gpgcheck	##仓库是否检测gpgkey
	state		##默认值present 建立
				##absent为删除
- 实例
	ansible all -m yum_repository -a "name=AppStream baseurl=http://172.25.254.250/rhel8.2/AppStream description=AppStream_westos gpgcheck=no file=westos_test" -k
	ansible all -m yum_repository -a "name=AppStream  file=westos_test state=absent" -k

ansible中的常用模块合集_第62张图片
ansible中的常用模块合集_第63张图片
ansible中的常用模块合集_第64张图片
ansible中的常用模块合集_第65张图片

5.12 dnf

- #作用
-	管理系统中的dnf仓库及管理软件

- 常用参数
	name		##指定包
	state		##指定动作
				#present	安装
				#latest		更新(安装最新版或者更新到最新版)
				#absent		删除
	list		##列出指定信息
				# httpd	
				# installed
				# all
				# available
	disable_gpg_check   ##禁用gpgkey检测
	enablerepo			##指定安装包来源
	disablerepo			##禁用安装包来源
	autoremove=yes|no  ##yes卸载全部依赖,默认为no
	

- 实例
	ansible all -m dnf -a "name=httpd state=latest"
	ansible all -m dnf -a 'name="httpd,mariadb-server" state=present'
	ansible all -m dnf -a 'name=httpd state=absent'
	ansible all -m dnf -a 'name=httpd state=absent autoremove=no'
	ansible all -m dnf -a 'name=httpd state=present enablerepo=AppStream'
	ansible all -m dnf -a 'name="*" state=latest'      ##更新所有组件
	ansible all -m dnf -a 'name=http://172.25.254.250/software/wps-office-xxx.rpm state=present'
	ansible all -m dnf -a 'name="@Virtualiation Tools" state=present' ##安装组件

ansible中的常用模块合集_第66张图片

ansible中的常用模块合集_第67张图片
在这里插入图片描述
ansible中的常用模块合集_第68张图片
ansible中的常用模块合集_第69张图片enablerepo
ansible中的常用模块合集_第70张图片
ansible中的常用模块合集_第71张图片
ansible中的常用模块合集_第72张图片disablerepo

ansible中的常用模块合集_第73张图片
ansible中的常用模块合集_第74张图片
disable_gpg_check

ansible中的常用模块合集_第75张图片

下载组文件

ansible中的常用模块合集_第76张图片
更新所有文件

ansible中的常用模块合集_第77张图片

5.13 service

- 作用
- 	管理系统服务状态

- 常用参数
	name		##指定服务名称
	state		##指定对服务的动作
				#started
				#stoped
				#restarted
				#reloaded
	enabled		##设定服务开机是否启动
				#yes开启启动
				#no开机不启动

- 实例
	ansible all -m service -a "name=httpd state=started enabled=yes" 
	ansible all -m service -a "name=httpd state=restarted enabled=yes" 

ansible中的常用模块合集_第78张图片ansible中的常用模块合集_第79张图片

5.14 user

- 作用
-	模块可以帮助我们管理远程主机上的用户,比如创建用户、修改用户、删除用户、为用户创建密钥对等操作

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

- 实例
	ansible all -m user -a 'name=lee'
	ansible all -m user -a 'name=lee state=absent'
	ansible all -m user -a 'name=lee remove=yes state=absent'
	ansible all -m user -a 'name=lee  group=888'   设定
	ansible all -m user -a 'name=lee  group=888 groups="user1,user2"'
	ansible all -m user -a 'name=lee groups="user3"'
	ansible all -m user -a 'name=lee groups="user1,user2" append=yes'
	openssl passwd -6 'westos'
	ansible all -m user -a 'name=lee password="$6$F4OBwqoXAigDV.dn$I2OgEPB3kfyl8CPmdh3Y8vKDqewZKrVMIDPPIt8GKnhs/DW4gZHfxrZX5ziQN7rVjISX7l14KwDQHEd.uprlV/"'
	ansible all -m user -a 'name=lee generate_ssh_key=yes'

ansible中的常用模块合集_第80张图片
ansible中的常用模块合集_第81张图片
ansible中的常用模块合集_第82张图片
ansible中的常用模块合集_第83张图片
ansible中的常用模块合集_第84张图片

ansible中的常用模块合集_第85张图片
在这里插入图片描述
ansible中的常用模块合集_第86张图片
在这里插入图片描述
ansible中的常用模块合集_第87张图片在这里插入图片描述

指定shell
ansible中的常用模块合集_第88张图片
ansible中的常用模块合集_第89张图片
用户说明comment

ansible中的常用模块合集_第90张图片
ansible中的常用模块合集_第91张图片
ansible中的常用模块合集_第92张图片ansible中的常用模块合集_第93张图片

password

明文密码
ansible中的常用模块合集_第94张图片
ansible中的常用模块合集_第95张图片

加密密码

ansible中的常用模块合集_第96张图片ansible中的常用模块合集_第97张图片

在这里插入图片描述

5.15 group

- 作用
- 	group 模块可以帮助我们管理远程主机上的组。
- 常用参数
-	name		##用于指定要操作的组名称。
-	state		##用于指定组的状态
-				#present	建立
-				#absent		删除
-	gid			##用于指定组的gid。
- 	system    yes|no   ##默认为no,=yes时创建一个系统组
- 实例
	ansible all -m group -a 'name=westoslee'
	ansible all -m group -a 'name=westoslee state=absent'
	ansible all -m group -a 'name=westoslee gid=8888'

ansible中的常用模块合集_第98张图片
在这里插入图片描述
ansible中的常用模块合集_第99张图片
在这里插入图片描述
ansible中的常用模块合集_第100张图片
在这里插入图片描述

5.16 lineinfile

- 	path		##指定要操作的文件。
-	line		##指定文本内容。
-	regexp		##使用正则表达式匹配对应的行当替换文本时
				##如果有多行文本都能被匹配
				##则只有最后面被匹配到的那行文本才会被替换
				##当删除文本时,如果有多行文本都能被匹配
				##这么这些行都会被删除。
-	state		##当想要删除对应的文本时需要将state参数的值设置为absent
				##state的默认值为present。
-	backrefs	##当内容无匹配规则时不对文件做任何更改,默认值为no
				##向后引用regexp变量信息
-	insertafter	##借助insertafter参数可以将文本插入到“指定的行”之后
				##insertafter参数的值可以设置为EOF或者正则表达式
-	insertbefore##借助insertbefore参数可以将文本插入到“指定的行”之前
				#insertbefore参数的值可以设置为BOF或者正则表达式
-	backup		##是否在修改文件之前对文件进行备份。
-	create		##当要操作的文件并不存在时,是否创建对应的文件。

- 实例
	ansible all -m lineinfile -a 'path=/mnt/westos line="hello westos"'
	ansible all -m lineinfile -a 'path=/mnt/westos regexp="^westos" line="hello westos" '
	ansible all -m lineinfile -a 'path=/mnt/westos regexp="^test" line="westos test"'
	ansible all -m lineinfile -a 'path=/mnt/westos regexp='^test' line="westos test new" backrefs=yes'
	vim westos
		hello westos
		hello test
		hello linux
	ansible all -m lineinfile -a 'path=/mnt/westos regexp="(h.{4}).*(w.{5})" line="\1" backrefs=yes'  ##h后面四个字符,w后面5个字符,.*表示中间多个分割字符。  \1表示替换文件中第一个变量()里面的。
	执行完最后一行hello linux 变为hello
	ansible all -m lineinfile -a 'path=/mnt/westos line="###### westos end #####" insertafter=EOF'
	ansible all -m lineinfile -a 'path=/mnt/westos line="###### westos end lee #####" insertafter="hello"'
	ansible all -m lineinfile -a 'path=/mnt/westos line="###### westos test #####" insertbefore=BOF'
	ansible all -m lineinfile -a 'path=/mnt/westos line="###### westos test lee #####" insertbefore="hello"'

create
在这里插入图片描述ansible中的常用模块合集_第101张图片
regexp

ansible中的常用模块合集_第102张图片
ansible中的常用模块合集_第103张图片
ansible中的常用模块合集_第104张图片absent
ansible中的常用模块合集_第105张图片在这里插入图片描述
backrefs

ansible中的常用模块合集_第106张图片
ansible中的常用模块合集_第107张图片
regexp="(h.{4}).*(w.{5})" line="\1"

ansible中的常用模块合集_第108张图片ansible中的常用模块合集_第109张图片
insertafter与insertbefore

ansible中的常用模块合集_第110张图片ansible中的常用模块合集_第111张图片
ansible中的常用模块合集_第112张图片
ansible中的常用模块合集_第113张图片
backup

ansible中的常用模块合集_第114张图片

ansible中的常用模块合集_第115张图片

5.17 replace

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

- 常用参数
-	path		##指定要操作的文件
-	regexp		##指定一个正则表达式
				#文件中与正则匹配的字符串将会被替换。
-	replace		##指定最终要替换成的字符串。
-	backup		##是否在修改文件之前对文件进行备份,最好设置为yes。
	
- 实例
	ansible all -m replace -a 'path=/mnt/westos regexp="WESTOS" replace="westos_lee" backup=yes'

ansible中的常用模块合集_第116张图片
ansible中的常用模块合集_第117张图片

5.18 setup

- 作用
-	setup模块用于收集远程主机的一些基本信息

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

- 实例
	ansible all -m setup -k
	ansible all -m setup   -a "filter='ansible_all_ipv4_addresses'" -k

ansible中的常用模块合集_第118张图片
ansible中的常用模块合集_第119张图片

5.19 debug

- 作用
-	调试模块,用于在调试中输出信息

- 常用参数:
-	msg:		##调试输出的消息,相当于echo
-	var:		##将某个任务执行的输出作为变量传递给debug模块	相当于echo `ls /hello`
				##debug会直接将其打印输出
-	verbosity:	##debug的级别(默认是0级,全部显示)

ansible中的常用模块合集_第120张图片

5.20 seboolean

- 作用
-	设置sebool值

- 常用参数:
-	name:	    ##设置的sebool值的内容,可以通过getsebool -a 查看
-	state:		##状态yes|no
-	persistent:##yes立即生效,no不生效

ansible中的常用模块合集_第121张图片

在这里插入图片描述

5.21 filesystem

- 作用
- 格式化硬盘,并设置格式化类型、大小

- 常用参数:
-	fstype:	    ##设置文件类型,(Aliases: type)(Choices: btrfs, ext2, ext3, ext4, ext4dev,f2fs, lvm, ocfs2, reiserfs, xfs, vfat, swap)
- dev               ##选择修改的硬盘文件

ansible中的常用模块合集_第122张图片

5.22 mount

- 作用
- 挂载

- 常用参数:
- backup:	  ##备份挂载目录的原有文件
- fstab :     ##永久挂载到的位置
- fstype:     ##挂载的硬盘类型
- path:       ##挂载点
- src:        ##挂载的文件
- state:      ##present挂载,absent解除挂载
- opts:       ##挂载参数( 如 ro,noauto)

ansible中的常用模块合集_第123张图片

5.23 parted

- 作用
- 分盘

- 常用参数:
- device:      ##分盘的设备
- number:      ##第几块分区
- part_start:  ##分区起始点
- part_end:    ##分区结束点,即分区大小
- state:       ##present建立分区,absent删除分区
- unit:        ##默认的分区大小单位,Choices: s, B, KB, KiB, MB, MiB, GB, GiB, TB, TiB, %, cyl,chs, compact
- label        ##设置盘符的标签,Choices: aix, amiga, bsd, dvh, gpt, loop, mac, msdos, pc98, sun

ansible中的常用模块合集_第124张图片

你可能感兴趣的:(运维基础,ansible,ad-doc,模块)