Ansible ad-hoc
  R6ZO6z1TYi7r 2023年11月02日 30 0

ad-hoc:

ad-hoc 点对点指的就是主控直接在被控上去执行命令,所以在这里 ad-hoc 被称为 ansible 的临时指令,如下所示,从这里可以看出 ad-hoc 每一次只能完成一个任务,对于一些复杂的需求 ad-hoc会使用起来很困难

Ansible ad-hoc_redhat

ad-hoc的语法及模块

ansible 主机/主机组 -m 模块名 -a '模块的参数' ansible 的参数

ansible-doc -l 查询当前所有的模块

Ansible ad-hoc_ansible_02

ansible-doc -s 模块名 #查询模块的参数

ansible-doc 模块名 #查询模块的详细用法(查询到模块后可直接搜索EXANMPES来查看示例用法,下图所查询的是file模块)

Ansible ad-hoc_ansible_03

示例:删除node2上的/opt/hello.txt 

ansible node2 -m file -a 'path=/opt/hello.txt state=absent'

Ansible ad-hoc_linux_04

注:通常使用ansible ad-hoc 去执行某条指令时如果不指定模块,那么默认使用的就是command这个模块

Ansible ad-hoc_redhat_05

ad-hoc的命令执行模块

command,shell,raw,script ==》这四个模块都是可以使用ansible 在linux 上执行命令

四个模块的差异:

command : 在command模块中是不识别 >,<,|,& 这种特殊符号

shell :相当于在本机上执行bash shell的指令,支持所有的特殊符号

raw:仅仅只能执行命令,缺少高级参数,例如切换目录以及判断文件是否存在等

script:不执行单条命令,他是将主控端的shell复制到被控端执行(注:这里是将shell文件中的内容拷贝到被控端去执行

command,shell支持的参数(raw不支持以下参数):

chdir 切换目录(如果指定了目录,那么就会在指定的目录执行操作,如果没有执行目录,那么就会在被控用户的家目录执行)

creates 文件存在命令不执行

Ansible ad-hoc_linux_06

removes 文件不存在命令不执行

Ansible ad-hoc_redhat_07

file模块:

file 模块主要用于操作远程主机上的文件,选项如下:

path:必选项,定义文件/目录的路径

state(动作):

file:查看文件的状态,默认选项,如果文件不存在会报错文件不存在

Ansible ad-hoc_配置文件_08

touch:如果文件不存在就会创建一个新的文件,如果已存在则更新时间戳

absent:删除目录,文件或取消链接文件

directory:如果目录不存在则创建目录

link:创建软连接

hard:创建硬链接

owner:定义文件或者目录的拥有人

group:定义文件或者目录的拥有组

mode:定义文件或者目录的权限

Ansible ad-hoc_linux_09

src:被链接的源文件的路径

dest:被连接到的目标路径

Ansible ad-hoc_redhat_10

copy模块:

src:需要复制到远程主机的文件在本地的地址,绝对目录相对路径均可(如果是目录,则递归复制)。

dest:必选项,将源文件复制到源站主机上的觉得路径

Ansible ad-hoc_linux_11

force:是否进行强制覆盖,如果设置为yes则覆盖,如果为no则只有当目标主机的目标位置不存在这个文件的时候才复制,默认是yes。

backup:在即将覆盖之前将原文件备份,备份的文件包含了时间信息

content:用于替代src,可以设定为指定文件的值==》直接往文件中写值,还可以将不存在的文件创建出来

Ansible ad-hoc_配置文件_12

others:所有的file模块中的相关文件属性选项都可以在这里使用

remote_src:复制被控主机的文件

yum_repository(yum仓库的管理模块)模块:

file:配置文件的名字,不包含repo

name:yum仓库的名字

description:仓库的描述信息

baseurl:yum源的地址

enabled:是否开启yum仓库

gpgcheck:是否检查软件包的完整性,yus/no

gpgkey:公钥的地址


Ansible ad-hoc_配置文件_13

yum模块:

name:要进行操作的软件包的名字,也可以传递一个url或者一个本地的rpm包的路径

state:动作==》present 安装,absent 卸载,latest更新到最新版本

#注:如果包本身没有安装,而去执行latest则会默认安装最新版

Ansible ad-hoc_redhat_14

service模块(redhat9已经被彻底干掉了):

name:服务名字

state:对当前服务的动作

enable:是否开机自启

Ansible ad-hoc_ansible_15

systemd模块:

name:服务名字

state:对当前服务的动作

enabled:是否开机自启

daemon_reload:当服务配置文件发生变更时重载服务

Ansible ad-hoc_主机名_16

cron模块:

该模块目前主要用于管理计划任务,常见选项如下

name:服务名字

state:动作,present 创建,absent 删除

user:指定某个用户的身份执行

day:日

hour:时

minute:分

month:月

weekday:周

job:需要执行的任务

cron_file:指定配置文件

Ansible ad-hoc_配置文件_17

Ansible ad-hoc_redhat_18

user模块:

user模块主要请求的为 useradd,usermod,userdel 三个指令:

state:动作

name:用户名

uid:用户uid

group:用户组

groups:用户的附加组

comment:定义用户描述的信息

create_home:是否创建家目录

home:指定用户的家目录

shell:指定用户的shell环境

password:指定用户的密码

remove:当选择为yes时,等价与userdel -r

Ansible ad-hoc_redhat_19

group模块:

group 用户组模块主要是 groupadd,groupdel,groupmod三个指令:

gid:指定组id

name:指定组名

state:动作(present|absent)

Ansible ad-hoc_配置文件_20

fetch模块:

fetch 模块与 copy 相反。fetch 是将被控端的文件复制到主控端。并且在主控端指定的目录下用被控端主机名的形式来组织目录接口,常用选项如下:

src:被控端要复制的文件地址,这里注意不能是目录

dest:主控段存放文件的地址

flat:默认是no。代表在主控端目录下以被控端主机名的形式来组织目录结构。yes 表示不会以被控端主机名的形式来组织目录结构,dest必须以/结尾。

Ansible ad-hoc_ansible_21

get_url模块:

get_url类似与wget,主要是从http,ftp,https服务器上下载文件,常用选项如下:

url:下载的url

url_password,url_username:主要用于需要用户名密码进行验证的场景

dest:目标目录

mode:权限

owner:拥有人

group:拥有组

Ansible ad-hoc_ansible_22

unarchive模块:

该模块主要用于解压,常用选项如下:

src:指定压缩文件的源路径(主控)

dest:被控端上文件解压的路径

remote_src:如果为no,则文件会从主控端复制到被控端。否则会直接尝试从被控端查找文件。默认为no

owner:解压后文件的拥有人权限

group:拥有组权限

mode:文件的权限

creates:指定一个文件名,如果这个文件已存在,那么解压命令不执行

list_files:如果为yes,则会列出压缩包里的文件,默认是no

Ansible ad-hoc_配置文件_23

synchronize模块:

synchronize主要是使用rsync来同步文件,常用参数如下:

src:要复制的文件

dest:目录路径

archive:归档

compress:是否开启压缩

rsync_opts:rsync的选项

delete:删除不存在的文件,默认是 no

dest_port:目录主机上的端口,默认是22

mode:主要用来确认使用的是push模块还是pull模块

Ansible ad-hoc_linux_24

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  6YY0QMPUXEwu   2023年12月10日   22   0   0 linux网卡
  Ex81gqy3LOX7   2023年12月07日   15   0   0 linux
  nIt0XG0acU8j   2023年12月11日   24   0   0 linuxhtop
  nIt0XG0acU8j   2023年12月09日   27   0   0 linuxsort
  9JCEeX0Eg8g4   2023年12月11日   21   0   0 mysql配置文件
R6ZO6z1TYi7r