ansible常用模块介绍

0. Ansible 特性

  1. 模块化:调用特定的模块完成特定任务,支持自定义模块,可使用任何编程语言写模块
  2. Paramiko(python对ssh的实现),PyYAML,Jinja2(模板语言)三个关键模块
  3. 基于Python语言实现
  4. 部署简单,基于python和SSH(默认已安装),agentless,无需代理不依赖PKI(无需ssl)
  5. 安全,基于OpenSSH
  6. 幂等性:一个任务执行1遍和执行n遍效果一样,不因重复执行带来意外情况,此特性非绝对
  7. 支持playbook编排任务,YAML格式,编排任务,支持丰富的数据结构
  8. 较强大的多层解决方案 role

1. ansible常用模块

1.1 command 模块

功能:在远程主机执行命令,此为默认模块,可忽略 -m 选项
注意:此命令不支持 $VARNAME < > | ; & 等,可能用shell模块实现

1.2 shell 模块

功能:和command相似,用shell执行命令,支持各种符号,比如:*,$, >是增强版的command模块.
默认情况下需要 -m shell 来指定,可以修改配置文件将默认模块换成shell(也可以默认其他模块)
示例:
将shell模块设置成默认模块

vim /etc/ansible/ansible.cfg

在这里插入图片描述
替换后的效果
在这里插入图片描述

1.3 script模块

功能:在远程主机上运行ansible服务器上的脚本(无需执行权限)
示例:

ansible dbserver -m script -a '/root/hostname.sh'

在这里插入图片描述

1.4 copy模块

功能:从ansible服务器主控端复制文件到远程主机
示例:

ansible webserver -m copy -a 'src=/root/hostname.sh dest=/opt/host.sh owner=root group=bin mode=700'

在这里插入图片描述

1.5 fetch模块

功能:从远程主机提取文件至ansible的主控端,copy相反,目前不支持目录

ansible webserver -m fetch -a 'src=/var/log/messages dest=/opt/log'

在这里插入图片描述

1.6 file 模块

功能:设置文件属性,创建软链接等
创建文件和文件夹
文件 state=touch
文件夹 state=directory
软连接 state=link src=xxx dest=xxx state=link
递归修改 recurse=yes
删除 state=absent

1.6.1 创建文件

ansible webserver -m file -a 'path=/opt/a.txt state=touch owner=ftp mode=550'

在这里插入图片描述

1.6.2 创建文件夹

ansible webserver -m file -a 'path=/nginx state=directory'

在这里插入图片描述

1.6.3 删除文件或文件夹

ansible webserver -m file -a 'path=/nginx state=absent'

在这里插入图片描述

1.7 get_url 模块

功能:从网络下载,可以加checksum校验md5码

ansible dbserver -m get_url -a 'url=http://192.168.31.32/index.html dest=/opt/index2.txt checksum="md5:a76b2b824459a563428efee4e4e10dfa"'

在这里插入图片描述

1.8 stat 模块

功能:查看文件属性

ansible webserver -m stat -a 'path=/opt/a.txt'

1.9 unarchive 模块

功能:将ansible服务器上文件传送到远程主机,并进行解压缩
如果是需要将文件传到远程copy=yes(默认值,可省略)
如果解压远程文件 copy=no

ansible webserver -m unarchive -a 'src=/root/etc.tar dest=/opt owner=ftp group=ftp mode=070'

在这里插入图片描述
在这里插入图片描述

1.9.1 例:下载nginx并解压

建目录

ansible webserver -m file -a 'path=/nginx state=directory'

从网络下载并解压缩

ansible webserver -m unarchive -a \
'src=https://nginx.org/download/nginx-1.21.3.tar.gz \
dest=/nginx owner=ftp group=ftp mode=755 copy=no'

在这里插入图片描述
解压远程服务上的包

ansible webserver -m unarchive -a ‘src=/opt/cc.tar dest=/var/named/ copy=no’

1.10 archive模块

功能:打包压缩文件并保存在被管理节点,和unarchive正好相反

ansible webserver -m archive -a 'path=/var/log/ dest=/opt/log.tar.gz \
format=gz  mode=600'

在这里插入图片描述
在这里插入图片描述

1.11 hostname 模块

功能:管理主机名

1.12 cron模块

功能:计划任务

ansible 192.168.31.31 -m cron -a 'hour=1 minute=0 weekday=1-5 name="backup nginx" job=/script/nginxbak.sh'

在这里插入图片描述

1.13 yum和apt模块

功能:安装,卸载,查看yum或apt包
安装包:

ansible 192.168.31.31 -m yum -a "name=sl"

在这里插入图片描述
在这里插入图片描述
查:

ansible 192.168.31.31 -m yum -a "list=sl"

删:

ansible 192.168.31.31 -m yum -a "name=sl state=absent"

在这里插入图片描述

1.14 yum_repository模块

功能:用来直接在playbook中配置yum仓库

1.15 service 模块

功能:启停服务

ansible 192.168.31.31 -m service -a "name=httpd state=started enabled=yes"

在这里插入图片描述
停止

ansible 192.168.31.31 -m service -a "name=httpd state=stopped"

1.16 USER模块

功能:创建删除用户

1.17 group 模块

功能:创建删除组

1.18 lineinfile 模块

功能:类似sed,修改时多行匹配,只匹配修改最后一个,删除是多行匹配,全部删除

ansible 192.168.31.31 -m lineinfile -a "path=/etc/httpd/conf/httpd.conf regexp='^Listen' line='Listen 8080'"
ansible 192.168.31.31 -m service -a "name=httpd state=restarted"
curl 192.168.31.31:8080

在这里插入图片描述
删掉#开头的行

ansible 192.168.31.31 -m lineinfile -a "path=/etc/httpd/conf/httpd.conf state=absent regexp='^#'"

1.19 Replace模块

功能: 和lineinfile类似,但可以匹配替换所有行,可以使用正则
ansible 192.168.31.31 -m replace -a “path=/etc/fstab regexp=’^(UUID.*)’ replace=’#\1’”

1.20 SELinux模块

功能:配置selinux

ansible 192.168.31.31 -m selinux -a ‘state=disabled’

1.21 reboot模块

功能:重启被控服务器

ansible 192.168.31.31 -m reboot

1.22 mount模块

功能:挂载设备

1.23 setup 模块

功能:显示远程服务器的状态

ansible 192.168.31.31 -m setup -a "filter=ansible_memtotal_mb"

在这里插入图片描述

1.24 debug模块

功能:此模块可以用于输出信息,并且通过 msg 定制输出的信息内容

ansible 192.168.31.31 -m debug

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值