Ansible常见模块使用
大约 2 分钟运维ansible
文件操作
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模块官方文档
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内置的模块非常多,基本可以覆盖常见的运维要求,这里仅仅列出来一些常用的模块。