zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    JavaScript中的闭包
    SQL 备忘
    SqlServer 2005 升级至SP2过程中出现"身份验证"无法通过的问题
    unable to start debugging on the web server iis does not list an application that matches the launched url
    Freebsd 编译内核
    Freebsd 6.2中关于无线网络的设定
    【Oracle】ORA01219
    【Linux】Windows到Linux的文件复制
    【Web】jar命令行生成jar包
    【Linux】CIFS挂载Windows共享
  • 原文地址:https://www.cnblogs.com/zydev/p/8848444.html
Copyright © 2011-2022 走看看