陈奇网络工作室

可能的学习笔记-通用模块(3)

系统操作和维护

可变公共模块

本节包括的模块有:

(1)定时任务模块cronvar

(2)存档模块

(3)解包模块解归档

(4)下载模块get_url。

(5)等待模块

(6)脚本模块

计时任务模块cronvar

除了cron模块本身可以管理cron的环境变量,另外一个模块cronvar也可以定义定时任务的环境变量。

Cronvar-Ansible官方指令文件

ansible-doc -s cronvar

- name:管理crontabs中的变量

cronvar:

Backup: #(是/否)如果设置,将在修改远程cron_file之前备份这些文件。

Cron_file: #自定义Cron_file的文件名,在/etc/cron.d中用相对路径表示。

State: # present用来创建变量,absent用来删除变量。

User: #指定将修改哪个用户的crontab。默认值为root。

Value: #环境变量的值,要求state=present。

(1)比如创建一个作业,每2分钟同步一次时间,自定义cron_file。

ansi ble test-m cron-a \ \ \ ' name=ntpdate job=/usr/sbin/ntpdate ntp1.aliyun.com cron _ file=ntpdate _ cron user=root minute=*/2 \ \ \ '-o-f 8

请验证它是否已正确添加。

ansi ble test-m shell-a \ \ \ ' cat/etc/cron . d/ntpdate _ cron \ \ \ '

192.168.246.187 |已更改| rc=0

#Ansible: ntpdate

*/2 * * * * root/usr/sbin/NTP date ntp1.aliyun.com

(2)要删除作业,名称必须匹配。如有必要,需要指定cron_file和user。

ansi ble test-m cron-a \ \ ' name=ntpdate state=absolute cron _ file=ntpdate _ cronuser=root \ \ '-o #/etc/cron . d/ntpdate _ cron这个文件仍然存在(内容为空)。

存档模块存档

用于远程压缩文件。当然前提是远程主机上要有相应的压缩工具。支持zip/gz/tar/bz2。

可存档的官方指令文件

ansible-doc -s档案

- name:创建一个或多个文件或树的压缩档案

存档:

目标:#目标存档文件名。除非path指定压缩单个文件,否则dest选项是必需的。

格式:#指定压缩格式,默认为gz格式。

Group: #文件/目录所属的组。

所有者:#文件/目录的所有者

Mode: #设置文件/目录的权限,支持\ \' 0644 \ \ '或\ \' URWX \ \ '或\ \ \' U=RW,G=R,O=R \ \ '等格式。

Path: #要压缩的文件可以是绝对路径、全局统一路径或文件列表。

Remove: #压缩后删除源文件。

例子如下:

(1)将文件压缩成默认的gz格式,因为path指定了要压缩的单个文件,所以dest:

ansi ble test-m archive-a \ \ \ ' path=/tmp/mu . txt \ \ \ '

描述:gzip-d mu.txt.gz,gz后缀压缩包的解压命令。

(2)将目录/path/to/foo/压缩成/path/to/foo.tgz:

ansi ble test-m archive-a \ \ \ ' path=/tmp/XYZ dest=/tmp/XYZ . tgz \ \ \ '

(3)将单个文件/path/to/foo压缩成zip格式:

ansi ble test-m archive-a \ \ \ ' path=/tmp/mu . txt format=zip \ \ \ '

描述:unzip mu.txt.zip是解压zip后缀压缩包的命令。

(4)将给定的文件列表压缩成bz2格式,压缩包路径为/path/file.tar.bz2:

- name:在/path下创建一个包含多个文件的bz2归档文件

存档:

路径:

- /path/to/foo

- /path/wong/foo

dest: /path/file.tar.bz2

格式:bz2

解包模块解归档

默认情况下,ansible端的归档文件被复制到受控主机,然后在受控主机上解包。如果设置了remote_src=yes选项,则表示控制主机上的归档文件已解包。

受控主机需要相应的解包命令。unzip命令用于提取。zip '文件,gtar(由tar包提供)命令用于提取'焦油''tar.gz ''tar.bz 2 '和'tar.xz '

不可归档的官方指令文件

ansible-doc -s取消归档

- name:从本地计算机复制归档文件后(可选)将其解包。

取消归档:

创建:#如果指定的文件存在,将不会执行该任务。可用于实现等幂。

Dest: #需要在远程机器上解包的归档文件需要一个绝对路径。

Exclude: #列出在解包过程中要忽略的目录和文件。

Group: #文件/目录所属的组。

所有者:#文件/目录的所有者

Mode: #设置文件/目录的权限,支持\ \' 0644 \ \ '或\ \' URWX \ \ '或\ \ \' U=RW,G=R,O=R \ \ '等格式。

Keep_newer: #在解包过程中,如果目标路径和包中有同名文件,并且比包中的文件新,那么新的文件会被保留。

当list_files: #设置为true时,将返回归档文件中的文件列表。

Remote_src: #如果设置为yes,则远程主机上已经存在目标归档文件,即归档文件不会在本地复制到远程端,直接在远程端解包。

#默认为否

Src: #如果remote_src=no,本地存档文件将被复制到远端,可以是相对路径,也可以是绝对路径。

#如果remote_src=yes,远程中的现有归档文件将被解压缩。

#如果remote_src=yes并且src包含://,将指示远程主机从url下载文件并将其解压缩。

下载模块get_url

get _ URLansi ble官方用户文档。

ansible-doc -s get_url

- name:将文件从HTTP、HTTPS或FTP下载到节点

获取网址:

备份:#下载文件时,创建一个名称中带有时间戳的备份文件。

Dest: #文件保存路径,必须是绝对路径。

#如果dest是一个目录,使用url的基本名称作为文件名。

#如果dest是一个目录,则\ \' force \ \ \ '选项不会生效。

#如果dest是一个目录,目标文件将总是被下载,但是只有当现有文件改变时,旧文件才会被替换。

Force: #如果设置为yes且dest不是目录,则总是下载文件,但只有在现有文件发生变化时,旧文件才会被替换。

#如果设置为no(默认值),则仅当目录路径中不存在该文件时才会下载。

Tmp_dest: #下载时暂存目录,任务完成前删除下载的临时文件。

Group: #文件/目录所属的组。

所有者:#文件/目录的所有者

Mode: #设置文件/目录的权限,支持\ \' 0644 \ \ '或\ \' URWX \ \ '或\ \ \' U=RW,G=R,O=R \ \ '等格式。

超时:#请求url时超时,默认为10秒。

Url: #要下载的Url路径,(http | https | FTP)://[user[:pass]]@ host . domain[:port]/path。

#还支持文件格式的路径实现复制功能。file:///path/to/file

请注意,当dest是一个目录或force=yes时,文件将总是下载到临时存储目录,但旧文件不一定会被替换。仅当force=no(默认)且dest是文件时,如果文件已经存在,则不会下载该文件。

例子如下:

(1)下载foo.conf,如果/etc/foo.conf已经存在,则不要下载该文件:

-名称:下载foo.conf

获取网址:

网址:http://example.com/path/file.conf

dest: /etc/foo.conf

模式:\\\'0440\\\ '

等待模块

有时任务依赖于资源,如状态、文件、端口等。只有满足前提条件,任务才会继续。wait_for模块用于判断任务在什么条件下是否继续。主要用于判断端口是否打开,文件是否存在,文件中是否存在某些字符串。

wait _ for-ansi ble官方说明文件。

ansible-doc -s wait_for

- name:在继续之前等待条件

等待时间:

Delay: #检查操作之前等待的秒数。

主机:#等待该主机启动,默认为127.0.0.1。

端口:#等待此端口打开。

路径:#该文件是否已经存在?

Search_regex: #文件中的常规匹配

状态:#存在/开始/停止/不存在/耗尽。默认启动。

#检查端口时:

# started:确保端口是打开的。

# stopped:确保端口关闭。

#检查文件时:

# present/started:文件在存在之前不会继续。

# absent:继续之前,请检查文件是否已被删除。

睡眠:#两次检查之间睡眠的秒数,默认为1秒。

超时:#检查等待超时(秒,默认为300)。

例子如下:

(1)连接主机10秒后检查8000端口是否打开,300秒内不打开(默认值)超时。

- name:等待主机上的端口8000打开,不要在10秒内开始检查

等待时间:

端口:8000

延迟:10

(2)在/tmp/foo文件存在之前,它不会继续。

- name:在继续之前,请等待文件/tmp/foo出现

等待时间:

路径:/tmp/foo

(3)在/tmp/foo文件中可以匹配“completed”字符串之前,不要继续。

- name:在继续之前,请等到文件/tmp/foo中包含完整的字符串

等待时间:

路径:/tmp/foo

search_regex:完成

(4)不要继续,直到锁file /var/lock/file.lock被移除。

- name:等到锁定文件被删除

等待时间:

路径:/var/lock/file.lock

状态:缺席

(5)不要继续,直到/proc/3466/status文件被删除,可以用来判断进程是启动还是停止,pid文件是存在还是被删除等。

- name:等到进程完成并且pid被销毁

等待时间:

路径:/proc/3466/status

状态:缺席

脚本模块

脚本模块用于控制远程主机执行脚本。Ansible会在执行本地脚本之前将其传输到远程主机。当执行脚本时,它使用远程主机上的shell环境。

可翻译的官方指令文件

ansible-doc -s脚本

- name:传输后在远程节点上运行本地脚本

脚本:

Chdir: #在远程执行脚本之前切换到这个目录。

创建:#当该文件存在时,不执行脚本。可用于实现等幂。

删除:#如果该文件不存在,则不执行脚本。可用于实现等幂。

Free_form: #要执行的本地脚本的路径、选项和参数。它被称为free_form,因为它是一个脚本名称选项参数。

解释

本帖参考马的文章整理生成。属于博主的读书笔记。如有侵权,请联系我,立即删除!

最后,感谢开源,拥抱开源~

更多关于云服务器,域名注册,虚拟主机的问题,请访问西部数码代理官网:www.chenqinet.cn。

相关推荐

后台-系统设置-扩展变量-手机广告位-内容页底部广告位3