美文网首页Ansile
Ansible运维自动化工具(5)-模块

Ansible运维自动化工具(5)-模块

作者: 刘小白DOER | 来源:发表于2021-08-01 23:31 被阅读0次

        今天继续来测试Ansible模块。 笔者通过ansible-doc -l | wc -l统计了一下,有3387个模块,今后遇到就尽量慢慢测试一番。

    1、raw模块

        ansible-doc -s raw:获取raw模块的使用帮助。

        此模块使用SSH直接执行linux命令。

        command模块无法使用管道,raw模块就可以,模块相对于使用SSH直接执行linux命令,不会进入到ansible的模块子系统中。shell模块也可以,但是shell模块还可以执行远程服务器上的shell脚本文件(脚本文件使用绝对路径)。script模块可以在远程服务器上执行主控节点的脚本文件,功能相对于scp+shell的组合,脚本执行完毕后再远程服务器上删除脚本文件。

    2、apt模块/yum模块

        ansible-doc -s apt:获取apt模块的使用帮助。在debian/ubuntu系统中安装、删除软件。

        ansible-doc -s yum:获取yum模块的使用帮助。在redhat系统中安装、删除软件。

        笔者以yum模块来测试。

        更新源:ansible tcloud -m yum -a "update_cache=yes" -become

        使用root权限安装sshpass工具:ansible tcloud -m yum -a "name=sshpass state=present" -become 。

    3、get_url模块

      ansible-doc -s get_url:获取get_url模块的使用帮助。

        此模块用于从网络上下载文件。

        笔者现在宿主机上启动一个web服务器:python -m http.server 80 

        使用get_url模块来获取文件到本虚拟机上:ansible localhost -m get_url -a "url=http://192.168.31.40/test.txt dest=/tmp/test.txt"  还可以通过 mode=0444 来设置文件的权限。

    4、unarchive模块

        ansible-doc -s unarchive:获取unarchive模块的使用帮助。

        此模块用于解压文件。

        笔者现在被管理机上打包个test.tar.gz。

        远程解压到/tmp目录:ansible tcloud -m unarchive -a "src=/home/lighthouse/test.tar.gz dest=/tmp remote_src=yes"

        远程查看解压的文件:

    5、git模块

        ansible-doc -s git:获取git模块的使用帮助。

        此模块用于在远程服务器上执行git操作,一般用于源码安装软件时,远程服务器需要有git软件。

       笔者使用自己的仓库来测试:ansible tcloud -m git -a "repo=https://github.com/laufei90/python.git dest=/home/lighthouse/git_pythons"

    6、stat模块

         ansible-doc -s stat:获取stat模块的使用帮助。

        此模块用于获取远程服务器上的文件信息,可以获取atime、mtime、ctime、checksum、size、uid、gid等信息。

        通过path在指定路径:ansible tcloud -m stat -a "path=/home/lighthouse/test.tar.gz"

    7、systcl模块

         ansible-doc -s systcl:获取systcl模块的使用帮助。

        此模块与linux下的systcl相似,用于控制linux的内核参数。

        清理缓存:ansible tcloud -m sysctl -a "name=vm.drop_caches value=3" -become

        清理前后通过  ansible tcloud -m shell -a "free -m"  查看有明显变化。

    8、synchronize模块

        ansible-doc -s synchronize:获取synchronize模块的使用帮助。

        此模块是对rsync命令的封装,也可以使用command模块来执行rsync命令,但synchronize模块使用比rsync命令更加简单。

       同步本地目录到远程服务器: ansible tcloud -m synchronize -a "src=pythons dest=/tmp/pythons"

    远程查看/tmp/pythons存在。

                再次同步,发现文件没有变化。

    最后来总结一下模块的返回值:

    changed:几乎所有的ansible模块都i会返回该变量,表示模块是否对远程主机执行了修改。

    failed:模块未能执行完成,failed为true。

    msg:模块执行失败的原因,常见的有ssh连接失败,没有执行权限等。

    rc:与命令行相关的模块会返回rc,表示执行linux命令的返回码。

    stdout:与rc类似,返回标准输出的结果。

    stderr:与rc类似,返回标准错误的结果。

    backup_file:如果存在backup选项的模块,用来返回备份文件的路径。

    results:应用在playbook中存在循环的情况,返回多个结果。

    相关文章

      网友评论

        本文标题:Ansible运维自动化工具(5)-模块

        本文链接:https://www.haomeiwen.com/subject/opirvltx.html