跳至主要內容

Ansible常见模块使用

xw大约 2 分钟运维ansible

文件操作open in new window

copy模块

作用:copy用于将文件或目录从控制节点复制到其他工作节点

案例:

- name: Copy file with owner and permissions
  copy:
    ## 源文件路径
    src: /srv/myfiles/foo.conf
    ## 目标路径
    dest: /etc/foo.conf
    ## 应该拥有文件/目录的用户的名称
    owner: foo
    ## 应该拥有文件/目录的组的名称
    group: foo
    ## 权限
    mode: '0644'

更多参数参考:copy模块官方文档open in new window

fetch模块

作用:从远程节点拉取文件或目录到控制节点

案例:

- name: Store file into /tmp/fetched/host.example.com/tmp/somefile
  fetch:
    ## 远程节点文件路径
    src: /tmp/somefile
    ## 控制节点保存目录
    dest: /tmp/fetched

file模块

作用:

案例:

这个与copy使用相似。

- name: Create a symbolic link
  file:
    src: /file/to/link/to
    dest: /path/to/symlink
    owner: foo
    group: foo
    state: link
    
## 创建文件    
- name: Touch a file
  file:
    path: /etc/foo.conf
    state: touch    

state参数说明:

  • absent。删除文件或目录或链接
  • directory。如果所有中间子目录不存在,则创建
  • file。默认,不会自动创建文件
  • hard。硬链接将被创建或更改
  • link。符号链接将被创建或更改。
  • touch。指定文件不存在则创建空文件。

信息采集

step模块

作用:收集主机相关信息,在playbook中会自动执行

案例:

## 查看主机内存信息
ansible all -m setup -a 'filter=ansible_*_mb'

网络

ping模块

作用:检查网络连通性

案例:

ansible all -m ping

总结

Ansible内置的模块非常多,基本可以覆盖常见的运维要求,这里仅仅列出来一些常用的模块。

参考链接