Ansible常用模块

Ansible常用模块

ad-hoc语法:
	ansible  主机   -m       模块              -a       动作
 	#命令  主机名称 指定模块 (command)模块名称 模块动作  具体命令
 	ansible-doc 模块:查看模块的帮助

ad-hoc结果返回颜色

绿色:命令执行成功且结果无变化的颜色
黄色:命令执行成功但返回结果有变化
红色:命令执行失败,报错在msg行
粉色|紫色:Warning,警告,一般无需处理

ansible查看帮助

ansible-doc 模块名
找到帮助信息中的'EXAMPLES'

Ad-hoc常用模块

command模块:该模块通过-a跟上要执行的命令可以直接执行
shell模块:用法基本和command一样,不过其是通过/bin/sh进行执行,所以shell 模块可以执行任何命令,就像在本机执行一样

# command模块不支持特殊符号

script模块

使用本机上的脚本控制其它机器上的动作,无需将脚本放在其它机器上

Ansible文件管理模块

file模块

file模块动作:
	src:指定软链接的源文件
	dest:指定软链接的目标文件
	path:指定文件路径
	owner:指定文件属主
	group:指定文件属组
	mode:指定文件权限
	recurse:递归
	state:
		touch:创建文件
		absent:删除
		directory:创建目录
		link:软链接
		hard:硬链接

mysql模块

mysql_user

# 管理mysql用户

动作:
  name:指定用户名
  host:指定允许连接的IP主机
  password:指定密码
  priv:指定权限 ‘*.*:ALL’
  login_user:Mysql登录用户
  login_password:mysql登录用户的密码
  state:
    present:创建
    absent:删除

mysql_db模块

# 管理mysql库

动作:
  name:指定库名
  target:导出数据指定存放sql文件的路径
  login_user:指定登录的用户
  login_password:指定登录的密码
  state:
    present:创建
    absent:删除
    dump:导出数据
    import:导入数据
    

copy模块

# 用来统一配置管理

动作:
	src:指定源文件的路径
	dest:指定目录路径
	owner:指定属主
	group:指定属组
	mode:指定权限
# 将管理端的文件下发到被管理端并修改属主为www,授权为777	
[root@m01 ~]# ansible web_group -m copy -a 'src=/etc/passwd dest=/opt owner=www group=www mode=777'
	backup:备份
		yes|True 备份
		no|false 不备份(默认)
	content:指定内容写入文件中
# 先将管理端的文件下发到其他机器上
[root@m01 ~]# ansible web_group -m copy -a 'src=/root/1.txt dest=/opt'
# 在之前发送的文件修改内容并将之前的文件备份
[root@m01 ~]# ansible web_group -m copy -a ' dest=/opt/1.txt backup=true content="backup"'

remote_src:远端的源文件
		yes|True
		no|false
# 将被管理端的/opt下的文件复制/tmp下		
[root@m01 ~]# ansible web_group -m copy -a 'src=/opt/1.txt dest=/tmp remote_src=yes'

get_url模块

# 类似于wget

动作:
	url:下载的网址
	dest:下载的路径
	mode:指定权限

[root@m01 ~]# ansible web_group -m get_url -a 'url=https://cn.wordpress.org/latest-zh_CN.tar.gz dest=/root mode=775'

Ansible软件管理模块

yum模块

动作:
	name:指定安装包的名字
		http://:从指定的url下载
		file://:从本地rpm包下载
		包名:从yum仓库下载
	state:状态
		absent/removed:卸载
		present/installed:安装(默认)
		latest:安装最新版本
download_only:只下载不安装

[root@m01 ~]# ansible web_group -m yum -a 'name=nginx download_only=true state=present'

yum_repository模块

# 管理yum源

动作:
	name:仓库的名字[xxx]
	description:仓库的描述信息
	baseurl:仓库的url地址
	file:如果指定了file那么文件名会为file指定的内容,如果没有指定那么文件名为name指定的内容
	owner:指定属主
	group:指定属组
	mode:指定权限
	gpgcheck:密钥对检测
		yes|True
		no|false
	enabled:是否开启仓库
		yes|True
		no|false
	state:状态
		present:创建仓库
		absent:删除仓库
## 创建仓库
[root@m01 ~]# ansible web_group -m yum_repository -a 'file=nginx name=nginx-stable description="xxx" baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/ gpgcheck=false enabled=true '

## 删除仓库
[root@m01 ~]# ansible web_group -m yum_repository -a 'name=nginx-stable file=nginx state=absent'

Ansible服务管理模块

service、systemd模块

## 管理服务的启停

动作:
	name:指定服务的名字
	state:状态
		started:开启服务
		reloaded:重新加载服务
		stopped:停止服务
		restarted:重启服务
	enabled:开机自启
		yes|True:加入开机自启
		no|false:不加入开机自启(默认)

Ansible用户管理模块

user模块

# 创建用户

动作:
	name:用户名
	comment:指定用户描述信息
	uid:指定用户的uid
	shell:指定用户登录的shell
	group:指定用户附加组
	append:追加附加组
	state:
		absent:删除用户
		present:创建用户(默认)
	remove:删除用户和用户的附加组
		yes|True
		no|false
	ssh_key_bits:创建用户时创建私钥,私钥的位数 2048
	ssh_key_file:指定私钥的位置
	create_home:创建用户是否创建家目录
		yes|True (默认)
		no|false

group模块

## 管理用户组

动作:
	name:指定组的名字
	gid:指定gid
	state:
		present:创建组(默认)
		absent:删除组
	
[root@m01 ~]# ansible web_group -m group -a 'name=www gid=666'
[root@m01 ~]# ansible web_group -m user -a 'name=www uid=666 group=666 shell=/sbin/nologin create_home=no'

Ansible定时任务模块

cron模块

## 管理定时任务

动作:
	name:定时任务注释信息
	minute:分
	hour:时
	day:日
	month:月
	weekday:周
	job:执行的任务
	state:
		present:创建定时任务
		absent:删除定时任务
# 创建定时任务		
[root@m01 ~]# ansible web_group -m cron -a 'name="time sync" minute=00  hour=03 job="/bin/ntpdate time1.aliyun.com &> /dev/null"'

# 删除定时任务
[root@m01 ~]# ansible web_group -m cron -a 'name="time sync" state=absent'

Ansable磁盘挂载模块

## 管理磁盘挂载

动作:
	path:需要挂载的路径
	src:挂载源
	fstype:文件类型
	state:
		present:只将挂载信息记录在/etc/fstab中(开机自动挂载)
		mounted:立即挂载,并将配置记录到/etc/fstab
		unmounted:卸载设备,但是不会清除/etc/fstab中的内容
		absent:卸载设备并清除/etc/fstab中的内容
	opts:指定挂载路径是否可读可写
posted on 2022-06-27 19:18  jilei  阅读(188)  评论(0)    收藏  举报