• Ansible常用模块使用


         Ansible官方提供了非常多的模块,还有若干第三方模块,我们也可以自己编写模块。

    Ansible对远程服务器的操作实际是通过模块完成的,先将模块拷贝到远程服务器,完成操作后,然后在远程服务器上删除该模块。

    查看模块帮助信息:

    查看模块列表:

      ansible-doc -l

    查看具体模块帮助信息,以file为例

       ansible-doc file

    ping模块

    测试现有的SSH参数能否连远程服务器。

      ansible webservers -m ping

    远程命令模块

      commond  不能使用管道,参数chdir可以切换到指定目录,再执行命令。

      raw           可以使用管道,相当于使用SSH直接执行Linux命令。

     shell          shell模块可以执行远程服务器上的脚本,脚本文件要使用绝对路径

     script         可以在远程服务器上执行主控节点上的脚本文件。

       ansible webservers -m script -a 'test.sh'

    file模块    

      file模块用于对远程服务器上的文件(包块链接和目录)进行操作,包括修改权限,修改属主,创建删除文件。

    重要选项:

    •  path: 指定文件/目录的路径
    • recurse: 递归设置目录属性
    • group: 定义组
    • mode: 定义权限
    • src: 要被链接的源文件路径
    • dest: 被链接到的路径
    • owner 定义文件所属主
    • state: 取值为directory是,目录不存在时,创建目录,file时,即使文件不存在,文件也不会被创建,link和hard时,创建软硬链接,tocuh时,同Linux,absent,删除文件或者目录或者链接。

    #创建一个目录

      ansible webservers -m file -a 'path=/tmp/dd state=directory mode=0755'

    #修改文件权限

      ansible webservers -m file -a 'path=/tmp/dd state=touch mode=0411'

    #创建一个软链接

      ansible webservers -m file -a 'src=/tmp/dd dest=/tmp/ddl state=link'

    #修改所有者

      ansible webservers -m file -a 'path=/tmp/dd owner=scott group=scott' -become

    #删除文件

      ansible webservers -m file -a 'path=/tmp/ddl state=absent'

    copy模块

      类似于scp,将本地文件拷贝到远程服务器,但是它更加强大,它还可以修改文件的权限和所属。

    • src: 文件地址,可以是相对路径也可以是绝对路径,以“/”结尾,复制目录里面的内容,如果没使用“/”结尾则复制整个目录。
    • dest : 文件复制目的地,要使用绝对路径
    • force: 默认值是yes,表示目标主机包含该文件,内容不同时会强制覆盖,如果为no,只有文件不存在时才会复制。
    • backup: 默认是no,如果为yes,覆盖前会将文件备份
    • directory_mode: 递归设置目录权限
    • othes: 所有file的模块选项都可以在这使用。

    #复制文件并修改所属主,如果文件已经存在,则进行备份。

    ansible webservers -m copy -a 'src=/tmp/data.txt dest=/tmp/data.txt owner=root backup=yes' -become

    user/group

       对用户和组的操作。

    # 创建一个用户,并生成密钥对。

      ansible webservers -m user -a 'name=dev1 comment="dev" group=root  uid=1099 generate_ssh_key=yes ssh_key_bits=2048' -become

    # 删除用户

      ansible webservers -m user -a 'name=dev1 state=absent' -become

    yum/apt

    安装和删除软件

    #安装软件

    ansible webservers -m yum -a 'name=git state=present' -become

    #删除软件

      ansible webservers -m yum -a 'name=git state=absent' -become

  • 相关阅读:
    禁止chrome浏览器自动更新检查
    第 3 章 容器
    在CentOS安装配置Nginx基于Docker容器方式
    CentOS各版本系统ISO镜像下载地址
    CentOS6虚拟机安装部署ActiveMQ 5.14
    Elasticsearch 实战与原理解析
    Elasticsearch 实战与原理解析
    Elasticsearch 实战与原理解析
    Elasticsearch源码解析与优化实战:附录 A 重大版本变化
    jmeter(一)安装与配置,ant和jenkins接口测试自动化
  • 原文地址:https://www.cnblogs.com/zydev/p/8848444.html
Copyright © 2020-2023  润新知