joeの小窝

Loading...

ansible常见的模块

ansible常见模块

主要就是命令模块和一些常见的模块,参数怎么使用,有什么效果

1、命令模块

1、shell模块

2、command模块

是默认的命令模块,& | < > 四个符号是无法识别的

3、raw模块

4、script模块

将主控节点的shell复制到被控节点执行,所以这个脚本文件是不需要执行权限的,与文件的本身没有关系,就是将命令放在被控节点上面执行

2、copy模块

将主控节点上的文件拷贝到被控节点上面,如果有相同的文件,内容不一样,则是覆盖

详细参数

src # 主控节点上面的路径

dest # 被控节点上面的路径

backup # yes的话 如果拷贝到被控节点上,有相同的文件的话,会对其进行一个备份的操作

content # 写的内容直接复制到被控节点上面

remote_src # yes的话 被控节点的文件拷贝到被控节点上面去

3、fetch模块

将被控节点的文件拷贝到主控节点上面去,拷贝的是文件

默认的话,拷贝到主控节点上面表现的形式是一个目录,以被控节点主机名命令的方式

详细的参数

src # 被控节点上面的路径

dest # 拷贝到主控节点上面的路径

flat # yes的话,只需要拷贝文件,不需要目录的形式

# 拷贝到主控节点的当前目录
[devops@server ansible]$ ansible node1 -m fetch -a 'src=/etc/passwd dest=./'


[devops@server ansible]$ ls node1/ -R
node1/:
etc

node1/etc:
passwd

4、yum_repository模块

配置yum仓库的模块

详细参数

name # 仓库名

description  # 描述信息

baseurl # 仓库的地址

file   # 文件名,不需要.repo,默认就是.repo结尾

state  # absent 删除仓库

enabled # yes 启用仓库

gpgcheck  # no 密钥不检测

5、yum模块

安装软件包的模块

详细参数

name # 软件包名

state  # present安装  absent 删除,latest安装最新版本的

6、service模块

管理服务器的模块

name  # 服务名

state  # started 启动服务,stopped关闭服务,restarted 重启服务,reloaded 重新加载服务 

enabled # yes 开启自启服务

7、system模块

跟上面一样的模块,管理服务

8、cron模块

周期性任务

name # 周期性任务起一个名字

state # present 生成一个任务,absent删除任务

minute # 分钟 */3 每三分钟

job # 任务执行的命令

cron_file  # 写到/etc/crontab文件中

# 每隔2分钟写入到文件中
[root@master ansible]# ansible master -m cron -a "name='echo 123' minute='*/2' job='echo 123 > /mnt/123.txt' state=present"

9、user模块

用户管理模块

name # 用户

comment # 用户的描述信息

uid  # 用户的uid号

group # 用户的主要组

shell  # 用户登录shell

groups # 附加组  一般配合append使用

state  # present 创建用户,absent 删除用户

remove # yes 彻底删除干净

[root@master ansible]# ansible master -m user -a "name=d1 comment='my name is d1' uid=3000 groups='root,q7'  append=yes state=present "

10、group模块

创建组的模块

11、setup模块

收集事实变量的

[root@master ansible]# ansible master -m setup -a "filter=ansible_eth0"

12、archive

压缩模块

将被控节点的文件或者目录压缩

path # 指定压缩的原文件路径,可以是多个,就用列表表示

dest # 表示压缩成的文件的路径

format  # 表示压缩的格式,gz(默认),bz2

remove  # 压缩成功后是否删除原文件

[root@master ansible]# ansible node1 -m archive -a "path=/tmp/ dest=/opt/tmp.tar.gz format=gz "

13、unarchive

解压缩模块,将主控节点的压缩包解压到被控节点上面

src # 源文件

dest # 解压后的路径

remote_src # 默认是no,就是将源文件解压缩到被控节点上面,yes的话,将被控节点的解压缩到被控节点上面去

# 将主控节点的解压缩到被控节点上面
[root@master ansible]# ansible node1 -m unarchive -a "src=h1.tar.gz dest=/opt"

# 将被控节点的文件解压缩到被控节点上面去
[root@master ansible]# ansible node1 -m unarchive -a "src=/opt/tmp.tar.gz dest=/opt/ remote_src=yes"

14、debug模块

之前写的模块内容

posted @ 2026-03-03 22:16  乔的港口  阅读(12)  评论(0)    收藏  举报