以下介绍了Ansible 常用模块以及基础使用方法。
我的博客:https://blog.itwk.cc/
-
command/module:
用于在远程主机上执行命令或脚本,命令语法:
- name: Run Command command: command_to_execute
示例:
- name: Check the package list command: yum list installed
-
copy/module:
用于将文件复制到远程主机,命令语法:
- name: Copy Files copy: src: /path/to/local/file dest: /path/to/remote/location
示例:
- name: Copy config file copy: src: /etc/nginx/nginx.conf dest: /etc/nginx/nginx.conf
-
template/module:
用于根据模板在远程主机上生成配置文件,命令语法:
- name: Generate Config File template: src: /path/to/template.conf.j2 dest: /path/to/remote/location
示例:
- name: Generate Nginx config file template: src: /etc/ansible/templates/nginx.conf.j2 dest: /etc/nginx/nginx.conf
-
yum/module:
用于在远程主机上安装软件包,命令语法:
- name: Install Package yum: name: packagename state: present
示例:
- name: Install Apache yum: name: httpd state: present
-
user/module:
用于管理用户和用户组,包括添加、删除和修改用户和用户组,命令语法:
- name: Create User user: name: username password: password comment: comment uid: uid group: group shell: shell state: present
示例:
- name: Create User user: name: john password: "{ { 'password' | password_hash('sha512') }}" comment: "John Doe" uid: 1025 group: developers shell: /bin/bash state: present
-
file/module:
用于管理文件和文件系统,包括创建、删除和修改文件和目录以及设置权限、所有人和所有组,命令语法:
- name: Create Directory file: path: /path/to/directory state: directory mode: mode owner: owner group: group
示例:
- name: Create Directory file: path: /var/www state: directory mode: '0755' owner: nginx group: nginx
-
service/module:
用于管理系统服务(daemons),包括启动、停止、重启和重新加载等,命令语法:
- name: Restart Nginx service: name: nginx state: restarted enabled: true
示例:
- name: Start MySQL service: name: mysqld state: started enabled: true
-
cron/module:
用于管理计划任务,命令语法:
- name: Add Cron Job cron: name: jobname minute: '*' hour: '*' day: '*' month: '*' weekday: '*' user: user job: command
示例:
- name: Add Cron Job cron: name: "Backup Database" minute: "0" hour: "1" job: "mysqldump --user=root --password=pass dbname | gzip > /backup/dbname.sql.gz" user: root
-
expect/module:
用于通过交互式 shell 与远程主机交互,使 ansible 能够更好地支持远程 shell 程序,命令语法:
- name: Run Expect expect: command: command to execute responses: pattern1: response1 pattern2: response2
示例:
- name: Login to SSH with Expect expect: command: ssh [email protected] responses: Password: "{ { ssh_password }}" yes/no: "yes"
以上就是 Ansible 常用模块的介绍及使用方法。对于每一个 Ansible 模块而言,都有其特定的语法和使用方式。同时,在配置 Ansible 模块时,需要加上“-“号,表明这是一个需要执行的任务。