Ansible 常用模块总结(二)

简介: Ansible 常用模块总结(二)

关注我的朋友可以发现在之前也总结过一些模块,本次也是之前的补充,总结归纳一下,防止遗忘。

ansible简单管理其它主机和常用模块示例

在进行实验前,我已经把测试用的服务器放到了test组中。


1.command模块


  • command模块的命令不支持启动shell,直接通过ssh执行命令
  • command不支持bash的特性,如管道和重定向功能
  • 所有需要调用shell的功能都无法使用
# 报错
ansible test -m command -a "ps|wc -l"
ansible test -m command -a "ls &"

可以通过下图很好地判断出,command模块单次执行之后的效果。


image.png


2.shell模块


如果想要调用shell功能时,可以使用shell模块

ansible test -m shell -a "ps|wc -l"
ansible test -m shell -a "ls &"

再次使用shell模块来执行命令时,就会正常了。值得注意的是,command和shell模块都只能去执行一些非交互式的命令,不能去执行一些交互式的命令,比如vim或top。

  • 模块支持判断(creates),文件存在时,不执行shell命令 比如我们给服务器生成密钥时,如果已经生成则不再重新生成,不再执行命令。
ansible test -m shell -a "ssh-keygen -f ~/.ssh/id_rsa -N '' creates=~/.ssh/id_rsa"


image.png


3.script模块


  • 允许本地写脚本,拷贝到被管理端并执行脚本
  • 脚本不是shell脚本(如python、perl脚本等),可以没有x权限 我这里在本机写了一下安装http的脚本,存储为test.sh:
#!/bin/bash
yum -y install httpd
systemctl start httpd

使用ansible在远端服务器上执行。

ansible test -m script -a "./test.sh"


image.png


4.file模块


  • file模块可以创建文件、目录、链接等;修改权限与属性等
  • 幂等性:任意次执行所产生的影响均与一次执行的影响相同 模块常见应用:
# 创建文件
ansible test -m file -a "path=/tmp/file.txt state=touch"
# 创建目录
ansible test -m file -a "path=/tmp/mydir state=directory"
# 修改权限
ansible test -m file -a "path=/tmp/file.txt owner=sshd group=adm mode=0777"

到目标主机上查看执行结果。


image.png


  • 删除文件、目录和创建链接文件 删除前面创建的文件和目录
# 删除目录 
ansible test -m file -a "path=/tmp/mydir state=absent"
# 删除文件
ansible test -m file -a "path=/tmp/file.txt state=absent"
# 创建链接文件,给/etc/hosts文件创建一个链接文件/tmp/host.txt
ansible test -m file -a "src=/etc/hosts path=/tmp/hosts state=link "

到服务器上查看,发现文件已经被删除,并且创建了一个链接文件。



image.png


5.lineinfile|replace模块


  • 在修改单个文件的单行内容时可以使用lineinfile模块 比如,在/etc/issue文件中添加一行内容hello world,默认添加到最后
ansible test -m lineinfile -a "path=/etc/issue line='hello world'"

注意: 基于幂等性,重复执行不会创建多行内容


image.png


相关文章
|
7月前
|
运维 Shell Linux
Ansible自动化运维工具之常用模块使用实战(5)
Ansible自动化运维工具之常用模块使用实战(5)
|
9月前
|
网络协议 网络安全
Ansible模块介绍——防火墙模块
Ansible模块介绍——防火墙模块
154 0
|
7天前
|
算法 安全 Linux
Ansible 中的copy 复制模块应用详解
Ansible 中的copy 复制模块应用详解
|
7月前
|
运维 Linux
Ansible自动化运维工具之常用模块使用实战(6)
Ansible自动化运维工具之常用模块使用实战(6)
|
10月前
|
Shell
ansible模块大全上【建议收藏】
ansible模块大全上【建议收藏】
106 0
ansible模块大全上【建议收藏】
|
6月前
|
网络安全 数据安全/隐私保护
ansible的get_url模块
ansible的get_url模块
|
6月前
|
存储 Linux Python
ansible手动添加模块
ansible手动添加模块
50 0
|
9月前
Ansible模块管理——磁盘管理模块、mount模块
Ansible模块管理——磁盘管理模块、mount模块
266 0
|
9月前
|
网络协议 网络安全 数据安全/隐私保护
Ansible模块介绍——配置网络模块、上传下载文件模块
Ansible模块介绍——配置网络模块、上传下载文件模块
277 0
|
9月前
|
应用服务中间件 nginx
Ansible模块——软件包管理模块
Ansible模块——软件包管理模块