1. ansbile中的常用模块以及参数
(1)command
功能为在远程主机执行命令,此模块为默认模块,常用参数有:
chdir:执行命令前先进入到指定目录
进入到/mnt成功创建
removes:存在运行
file5不存在不会执行后面的命令,file1存在,所以执行了后面的命令
creates:存在不运行
第一条命令不存在file1所以执行了命令,第二条因为我们创建了file5不存在所以运行了
当条件存在时不能执行命令
(2)shell
shell和command功能类似,主要有两点不同:
shell中支持通配符* ,command不支持通配符*
如图,先创建了/mnt/file1,使用command无法删除/mnt/file1,shell可以
shell多了executable模块默认使用的执行环境为sh,加入executable模块,可以指定执行环境为bash
$$:表示当前进程的ID
(3)script
指定脚本在被控主机中运行
为了方便操作,现在只留了200为受控主机
使用script模块,远程操作受控机执行test.sh脚本
(4)copy
将ansible主机的文件复制到受控主机
常用参数 | 功能 |
content | 指定文本内容直接在受控主机中生成文件 |
dest | 目的地文件 |
group | 指定目的地文件的组 |
mode | 指定目的地文件权限 |
owner | 指定目的地文件所有人 |
backup=yes | 当受控主机中存在文件时备份原文件 |
src | 源文件 |
将test.sh文件远程拷贝到受控主机,拥有者是root 权限755
在受控主机中查看
修改test.sh文件,再次拷贝,备份源文件
文件存在了,备份源文件
copy模块,还可以直接输入文件内容,发给受控主机的/mnt/westos文件
输入的内容正确,已经发送到了受控主机了
(5)fetch
不支持目录,从受控主机将文件复制到ansible主机
src | 受控主机的源文件 |
dest | 本机目录 |
flat | 基本名称功能,单纯只要文件,不要路径的层层目录 |
在受控主机上创建目录以及文件
从受控主机中复制过来文件
加上flat=yes,表示不要目录只要文件
(6)file
受控主机的文件管理,设置文件的属性
参数 | 含义 |
path | 指定文件名称 |
state | 指定操作状态(touch建立文件、absent删除、directory建立目录、link建立软连接、hard建立硬连接) |
mode | 设定权限 |
owner | 设定文件的用户 |
group | 设定文件组 |
src | 源文件 |
dest | 目标文件 |
recurse=yes | 递归更改 |
在受控主机上创建文件westos
建立目录
设置文件的拥有者和拥有组都是westos
建立层级文件
创建软链接
创建硬链接
两个文件的编号一样
删除linux文件和westosdir目录
(7)archive
压缩
常用参数 | 功能 |
path | 打包目录名称 |
dest | 声称打包文件名称 |
format | 打包格式 |
owner | 指定文件所属人 |
mode | 指定文件权限 |
压缩受控主机/etc目录,压缩包名称为etc.tar.gz 格式为gz
压缩/etc/passwd
压缩包名称为passwd.tar.bz2 格式为bz2 权限755 拥有者为westos,拥有组为devops
(8)unarchive
解压
常用参数 | 功能 |
copy | 默认为yes(从ansible主机复制文件到受控主机);设定为no,从受控主机中寻找src源文件 |
remote_src | 功能同copy且相反,设定为yes 表示包在受控主机,设定为no表示包在ansible主机 |
src | 包路径,可以使用ansible主机也可以使用受控主机 |
dest | 受控主机目录 |
mode | 解压后文件权限 |
创建一个压缩包
将压缩包解压到受控主机的media目录
解压后拥有者为westos,权限为755
删除本机压缩包,copy=no,从受控主机中用压缩包解压
(9)hostname
修改主机名称
修改受控主机主机名
(10)cron
定时任务
参数 | 功能 |
name | 任务名称 |
job | 任务脚本或命令 |
disabled | yes 禁用计划任务,no 启动计划任务 |
state | absent 删除计划任务 |
半分钟执行一次test任务
加上disabled参数取消定时任务
取消任务其实就是注释掉
开启任务
就是去掉了注释
删除任务