美文网首页
ansible playbook(3) 常用模块

ansible playbook(3) 常用模块

作者: xuweizhen | 来源:发表于2018-08-01 17:34 被阅读0次

    playbook中常用模块

    playbook中的模块很多,可以直接在官网上查询,也可以使用ansible doc命令查询
    例如:查询copy模块

    ansible doc -s copy
    

    会返回copy的模块的参数写法和功能。
    下面以示例的方式介绍下几个常用的模块

    1. copy模块

    - name: Copy the keyfile for authentication
      copy: src=roles/mongod/files/secret dest={{ mongodb_datadir_prefix }}/secret owner=mongod group=mongod mode=0400
    

    参数解析

    • src: 源路径
    • dest: 目标地址
    • owner:属于哪个用户
    • group:属于哪个组
    • mode: 拥有哪些权限

    copy模块还有其他功能,例如是否备份,具体查看官网。

    2. 创建文件或目录命令

    - name: Create data directory for mongoc configuration server
      file: path={{ mongodb_datadir_prefix }}/configdb state=directory owner=mongod group=mongod
    

    参数解析

    • path: 路径,一般用于创建删除文件或目录
    • state: file的相关操作,
      directory表示创建目录,
      link表示创建软连接,link还需要源路径和目标路径配合使用
      touch表示创建文件,
      absent表示删除文件

    3. 执行command命令

    - name: Start the mongo configuration server service
      command: creates=/var/lock/subsys/mongoc /etc/init.d/mongoc start
    

    command命令和shell命令类似,如果你使用shell命令,变量如下$HOME以及像这样的行动"<", ">", "|", ";"和"&"将无法使用

    4. 执行shell命令

    - name: Initialize the replication set
      shell: /usr/bin/mongo --port "{{ mongod_port }}" /tmp/repset_init.js
    

    使用shell命令去处理

    5. 暂停

    - name: pause
      pause: seconds=20
    

    可以在某一个步骤中暂停,等待一段时间。

    6. 服务模块

      - name: Make sure nginx start with boot
        service: name=nginx state=started enabled=yes
    

    可以使用service命令去管理linux系统中的服务。
    参数解析

    • name:系统的服务名称
    • state: 对服务执行的操作,可以启动,停止,查看状态等

    7. tag命令

    tags: conf  \\给此任务打标记,可单独执行标记的任务,使用 ansible-playbook -C 命令执行
    

    8. 解压命令

    unarchive模块
    用于解压文件,模块包含如下选项:
    copy:在解压文件之前,是否先将文件复制到远程主机,默认为yes。若为no,则要求目标主机上压缩包必须存在。
    creates:指定一个文件名,当该文件存在时,则解压指令不执行
    dest:远程主机上的一个路径,即文件解压的路径
    grop:解压后的目录或文件的属组
    list_files:如果为yes,则会列出压缩包里的文件,默认为no,2.0版本新增的选项
    mode:解决后文件的权限
    src:如果copy为yes,则需要指定压缩文件的源路径
    owner:解压后文件或目录的属主
    示例如下:

        - unarchive: src=foo.tgz dest=/var/lib/foo
        - unarchive: src=/tmp/foo.zip dest=/usr/local/bin copy=no
        - unarchive: src=https://example.com/example.zip dest=/usr/local/bin copy=no
    

    参考文档:

    ansible playbook file模块:http://blog.51cto.com/hellocjq/2061703
    ansible 官网 模块指南:https://docs.ansible.com/ansible/latest/modules/modules_by_category.html

    相关文章

      网友评论

          本文标题:ansible playbook(3) 常用模块

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