ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Ansible常用模块

2022-06-27 19:33:44  阅读:140  来源: 互联网

标签:常用 Ansible group name 指定 ansible 模块 root


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:硬链接

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:指定挂载路径是否可读可写

标签:常用,Ansible,group,name,指定,ansible,模块,root
来源: https://www.cnblogs.com/zlyj/p/16417269.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有