1. ansbile中的常用模块以及参数

(1)command

功能为在远程主机执行命令,此模块为默认模块,常用参数有:
chdir:执行命令前先进入到指定目录

ansible shell 与 command 区别 shell和ansible_运维

进入到/mnt成功创建

ansible shell 与 command 区别 shell和ansible_运维_02


removes:存在运行

file5不存在不会执行后面的命令,file1存在,所以执行了后面的命令

ansible shell 与 command 区别 shell和ansible_压缩包_03


creates:存在不运行

第一条命令不存在file1所以执行了命令,第二条因为我们创建了file5不存在所以运行了

当条件存在时不能执行命令

ansible shell 与 command 区别 shell和ansible_压缩包_04

(2)shell

shell和command功能类似,主要有两点不同:
shell中支持通配符* ,command不支持通配符*

如图,先创建了/mnt/file1,使用command无法删除/mnt/file1,shell可以

ansible shell 与 command 区别 shell和ansible_运维_05


shell多了executable模块默认使用的执行环境为sh,加入executable模块,可以指定执行环境为bash

$$:表示当前进程的ID

ansible shell 与 command 区别 shell和ansible_源文件_06

(3)script

指定脚本在被控主机中运行
为了方便操作,现在只留了200为受控主机

ansible shell 与 command 区别 shell和ansible_运维_07


使用script模块,远程操作受控机执行test.sh脚本

ansible shell 与 command 区别 shell和ansible_源文件_08

(4)copy

将ansible主机的文件复制到受控主机

常用参数

功能

content

指定文本内容直接在受控主机中生成文件

dest

目的地文件

group

指定目的地文件的组

mode

指定目的地文件权限

owner

指定目的地文件所有人

backup=yes

当受控主机中存在文件时备份原文件

src

源文件

将test.sh文件远程拷贝到受控主机,拥有者是root 权限755

ansible shell 与 command 区别 shell和ansible_运维_09

在受控主机中查看

ansible shell 与 command 区别 shell和ansible_压缩包_10


修改test.sh文件,再次拷贝,备份源文件

ansible shell 与 command 区别 shell和ansible_压缩包_11

文件存在了,备份源文件

ansible shell 与 command 区别 shell和ansible_运维_12


copy模块,还可以直接输入文件内容,发给受控主机的/mnt/westos文件

ansible shell 与 command 区别 shell和ansible_ansible_13

输入的内容正确,已经发送到了受控主机了

ansible shell 与 command 区别 shell和ansible_文件权限_14

(5)fetch

不支持目录,从受控主机将文件复制到ansible主机

src

受控主机的源文件

dest

本机目录

flat

基本名称功能,单纯只要文件,不要路径的层层目录

在受控主机上创建目录以及文件

ansible shell 与 command 区别 shell和ansible_文件权限_15


从受控主机中复制过来文件

ansible shell 与 command 区别 shell和ansible_文件权限_16


加上flat=yes,表示不要目录只要文件

ansible shell 与 command 区别 shell和ansible_压缩包_17

(6)file

受控主机的文件管理,设置文件的属性

参数

含义

path

指定文件名称

state

指定操作状态(touch建立文件、absent删除、directory建立目录、link建立软连接、hard建立硬连接)

mode

设定权限

owner

设定文件的用户

group

设定文件组

src

源文件

dest

目标文件

recurse=yes

递归更改

在受控主机上创建文件westos

ansible shell 与 command 区别 shell和ansible_文件权限_18


ansible shell 与 command 区别 shell和ansible_源文件_19


建立目录

ansible shell 与 command 区别 shell和ansible_运维_20


ansible shell 与 command 区别 shell和ansible_运维_21

设置文件的拥有者和拥有组都是westos

ansible shell 与 command 区别 shell和ansible_运维_22


ansible shell 与 command 区别 shell和ansible_源文件_23


建立层级文件

ansible shell 与 command 区别 shell和ansible_ansible_24


ansible shell 与 command 区别 shell和ansible_文件权限_25


创建软链接

ansible shell 与 command 区别 shell和ansible_ansible_26


ansible shell 与 command 区别 shell和ansible_压缩包_27


创建硬链接

ansible shell 与 command 区别 shell和ansible_文件权限_28


两个文件的编号一样

ansible shell 与 command 区别 shell和ansible_源文件_29


删除linux文件和westosdir目录

ansible shell 与 command 区别 shell和ansible_文件权限_30


ansible shell 与 command 区别 shell和ansible_源文件_31

(7)archive

压缩

常用参数

功能

path

打包目录名称

dest

声称打包文件名称

format

打包格式

owner

指定文件所属人

mode

指定文件权限

压缩受控主机/etc目录,压缩包名称为etc.tar.gz 格式为gz

ansible shell 与 command 区别 shell和ansible_ansible_32


ansible shell 与 command 区别 shell和ansible_压缩包_33

压缩/etc/passwd

ansible shell 与 command 区别 shell和ansible_压缩包_34

压缩包名称为passwd.tar.bz2 格式为bz2 权限755 拥有者为westos,拥有组为devops

ansible shell 与 command 区别 shell和ansible_压缩包_35

(8)unarchive

解压

常用参数

功能

copy

默认为yes(从ansible主机复制文件到受控主机);设定为no,从受控主机中寻找src源文件

remote_src

功能同copy且相反,设定为yes 表示包在受控主机,设定为no表示包在ansible主机

src

包路径,可以使用ansible主机也可以使用受控主机

dest

受控主机目录

mode

解压后文件权限

创建一个压缩包

ansible shell 与 command 区别 shell和ansible_压缩包_36

将压缩包解压到受控主机的media目录

ansible shell 与 command 区别 shell和ansible_压缩包_37


ansible shell 与 command 区别 shell和ansible_运维_38

解压后拥有者为westos,权限为755

ansible shell 与 command 区别 shell和ansible_源文件_39


ansible shell 与 command 区别 shell和ansible_压缩包_40

删除本机压缩包,copy=no,从受控主机中用压缩包解压

ansible shell 与 command 区别 shell和ansible_文件权限_41


ansible shell 与 command 区别 shell和ansible_文件权限_42

(9)hostname

修改主机名称

修改受控主机主机名

ansible shell 与 command 区别 shell和ansible_压缩包_43


ansible shell 与 command 区别 shell和ansible_文件权限_44

(10)cron

定时任务

参数

功能

name

任务名称

job

任务脚本或命令

disabled

yes 禁用计划任务,no 启动计划任务

state

absent 删除计划任务

半分钟执行一次test任务

ansible shell 与 command 区别 shell和ansible_源文件_45


ansible shell 与 command 区别 shell和ansible_文件权限_46


加上disabled参数取消定时任务

ansible shell 与 command 区别 shell和ansible_ansible_47

取消任务其实就是注释掉

ansible shell 与 command 区别 shell和ansible_源文件_48


开启任务

ansible shell 与 command 区别 shell和ansible_ansible_49

就是去掉了注释

ansible shell 与 command 区别 shell和ansible_运维_50

删除任务

ansible shell 与 command 区别 shell和ansible_源文件_51


ansible shell 与 command 区别 shell和ansible_ansible_52