美文网首页
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