Ansible剧本编写与管理Skill ansible-playbooks

Ansible剧本编写与管理技能涉及使用Ansible工具编写和管理YAML格式的剧本,实现IT基础设施的自动化配置管理、部署和编排。关键词:Ansible、剧本、配置管理、自动化、基础设施编排、DevOps、YAML、IT运维、自动化脚本、服务器管理。

DevOps 0 次安装 0 次浏览 更新于 3/25/2026

name: ansible-playbooks user-invocable: false description: 用于编写和组织Ansible剧本,以实现自动化配置管理和基础设施编排。 allowed-tools: []

Ansible剧本

编写和组织Ansible剧本进行配置管理。

基本剧本

---
- name: 配置Web服务器
  hosts: webservers
  become: yes
  
  vars:
    http_port: 80
    app_version: "1.0.0"
  
  tasks:
    - name: 安装nginx
      apt:
        name: nginx
        state: present
        update_cache: yes
    
    - name: 启动nginx
      service:
        name: nginx
        state: started
        enabled: yes
    
    - name: 部署应用程序
      copy:
        src: ./app
        dest: /var/www/html
        owner: www-data
        mode: '0755'

库存

[webservers]
web1.example.com
web2.example.com

[databases]
db1.example.com

[production:children]
webservers
databases

常用模块

包管理

- name: 安装包
  apt:
    name:
      - nginx
      - git
      - python3
    state: present

文件操作

- name: 复制配置
  template:
    src: nginx.conf.j2
    dest: /etc/nginx/nginx.conf
    backup: yes
  notify: 重启nginx

处理器

handlers:
  - name: 重启nginx
    service:
      name: nginx
      state: restarted

最佳实践

使用角色

roles/
├── webserver/
│   ├── tasks/
│   │   └── main.yml
│   ├── handlers/
│   │   └── main.yml
│   └── templates/
│       └── nginx.conf.j2

幂等性

- name: 确保目录存在
  file:
    path: /opt/app
    state: directory
    mode: '0755'