Ansible之项目实战--多节点LAMP环境部署

Ansible之项目实战--多节点LAMP环境部署

精选文章moguli202025-03-28 13:59:0812A+A-

项目实战:多节点LAMP环境部署

一、 Playbook案例:

- name: 部署LAMP集群
  hosts: all
  become: yes
  vars:
    mysql_root_password: "{{ vault_mysql_password }}"  # 从Vault加载
  tasks:
    - name: 安装公共包
      apt: 
        name: ["vim", "git", "htop"]
        state: present
      when: ansible_os_family == 'Debian'

    - name: 配置防火墙
      ufw:
        rule: allow
        port: "{{ item }}"
      loop: [80, 443, 22]

    - name: 部署Apache (Web节点)
      include_tasks: roles/apache/tasks/main.yml
      when: "'web' in group_names"

    - name: 部署MySQL (DB节点)
      include_tasks: roles/mysql/tasks/main.yml
      when: "'db' in group_names"

二、排查技巧

  1. SSH连接失败
  • 检查ansible_user是否有sudo权限
  • 验证SSH密钥是否添加至authorized_keys
  • 使用-vvvv参数查看详细连接过程
  1. 变量未定义错误
# 错误:Variable 'http_port' is undefined
- debug: var=http_port
# 修复:在group_vars或playbook中定义变量
  1. 模块参数错误
# 错误:缺少必填参数 'name'
- apt: state=present
# 修复:添加name参数
- apt: name=nginx state=present
点击这里复制本文地址 以上内容由莫古技术网整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!
qrcode

莫古技术网 © All Rights Reserved.  滇ICP备2024046894号-2