playbooks 分布式部署 LNMP
创始人
2024-11-15 12:09:47
0

使用Ansible Playbooks进行分布式部署LNMP(Linux, Nginx, MySQL, PHP)是一种高效的方法。以下是一个详细的指南,包含Ansible Playbook的创建和配置,以便在多个服务器上自动化部署LNMP栈。

1. 安装Ansible

首先,在控制节点(通常是你的管理机器)上安装Ansible。

sudo yum install epel-release -y sudo yum install ansible -y 

2. 设置主机清单

创建一个主机清单文件,定义你的服务器。

# /etc/ansible/hosts  [webservers] webserver1 ansible_host=192.168.1.101 webserver2 ansible_host=192.168.1.102  [dbservers] dbserver ansible_host=192.168.1.103 

3. 创建Playbooks

3.1. 全局变量文件

创建一个包含全局变量的文件。

# group_vars/all.yml  --- nginx_version: "1.20.1" mysql_root_password: "your_root_password" mysql_database: "example_db" mysql_user: "example_user" mysql_password: "example_password" php_version: "7.4" 
3.2. 安装Nginx的Playbook

创建用于安装和配置Nginx的Playbook。

# playbooks/nginx.yml  --- - hosts: webservers   become: yes   tasks:     - name: 安装Nginx       yum:         name: nginx         state: present      - name: 启动并启用Nginx服务       systemd:         name: nginx         state: started         enabled: yes      - name: 配置Nginx       template:         src: templates/nginx.conf.j2         dest: /etc/nginx/nginx.conf       notify:         - restart nginx    handlers:     - name: restart nginx       systemd:         name: nginx         state: restarted 

创建一个Nginx配置模板。

# templates/nginx.conf.j2  user nginx; worker_processes auto; error_log /var/log/nginx/error.log; pid /run/nginx.pid;  events {     worker_connections 1024; }  http {     include /etc/nginx/mime.types;     default_type application/octet-stream;     sendfile on;     keepalive_timeout 65;      server {         listen 80;         server_name localhost;          location / {             root /usr/share/nginx/html;             index index.html index.htm;         }          error_page 404 /404.html;             location = /40x.html {         }          error_page 500 502 503 504 /50x.html;             location = /50x.html {         }     } } 
3.3. 安装MySQL的Playbook

创建用于安装和配置MySQL的Playbook。

# playbooks/mysql.yml  --- - hosts: dbservers   become: yes   tasks:     - name: 安装MySQL       yum:         name: mysql-server         state: present      - name: 启动并启用MySQL服务       systemd:         name: mysqld         state: started         enabled: yes      - name: 设置MySQL root密码       mysql_user:         name: root         host: localhost         password: "{{ mysql_root_password }}"         login_unix_socket: /var/lib/mysql/mysql.sock      - name: 创建数据库       mysql_db:         name: "{{ mysql_database }}"         state: present         login_user: root         login_password: "{{ mysql_root_password }}"      - name: 创建数据库用户并授予权限       mysql_user:         name: "{{ mysql_user }}"         password: "{{ mysql_password }}"         priv: "{{ mysql_database }}.*:ALL"         state: present         login_user: root         login_password: "{{ mysql_root_password }}" 
3.4. 安装PHP的Playbook

创建用于安装和配置PHP的Playbook。

# playbooks/php.yml  --- - hosts: webservers   become: yes   tasks:     - name: 安装EPEL仓库       yum:         name: epel-release         state: present      - name: 安装Remi仓库       yum:         name: http://rpms.remirepo.net/enterprise/remi-release-7.rpm         state: present      - name: 启用Remi PHP仓库       yum_repository:         name: remi-php{{ php_version | replace('.', '') }}         enabled: yes      - name: 安装PHP和扩展       yum:         name: "{{ item }}"         state: present       with_items:         - php         - php-fpm         - php-mysqlnd      - name: 启动并启用PHP-FPM服务       systemd:         name: php-fpm         state: started         enabled: yes 

4. 运行Playbooks

运行Ansible Playbooks来部署LNMP。

ansible-playbook playbooks/nginx.yml ansible-playbook playbooks/mysql.yml ansible-playbook playbooks/php.yml 

5. 检查和验证

确认Nginx、MySQL和PHP已正确安装和配置。你可以访问Nginx默认页面并通过MySQL命令行工具检查数据库和用户的创建。

总结

通过上述步骤,你可以使用Ansible自动化工具在多个服务器上分布式部署LNMP栈。这种方法确保了安装过程的一致性,并简化了大规模部署和管理的复杂性。

相关内容

热门资讯

玩家攻略,金花房卡专卖店九酷众... 微信游戏中心:九酷众娱房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
正规平台有哪些,金花房卡批发价... 正规平台有哪些,金花房卡批发价火神大厅/房卡链接怎么获取Sa9Ix苹果iPhone 17手机即将进入...
ia攻略/金花房卡如何购买嫦娥... 嫦娥大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
推荐一款!牛牛充值房卡海草众厅... 海草众厅房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根...
一分钟了解!金花房卡出售红桃众... 一分钟了解!金花房卡出售红桃众娱/微信链接房卡充值链接红桃众娱是一款非常受欢迎的游戏,咨询房/卡添加...
我来教你/金花房卡制作链接熊猫... 我来教你/金花房卡制作链接熊猫大厅/微信链接房卡批发价Sa9Ix苹果iPhone 17手机即将进入量...
科技实测!金花房卡出售新八戒/... 新八戒房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 3、根据...
ia攻略/斗牛房卡充值乐乐大厅... 微信游戏中心:乐乐大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
ia攻略/金花房卡批发嫦娥大厅... 嫦娥大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
头条推荐!金花房卡出售乐乐大厅... 头条推荐!金花房卡出售乐乐大厅//全网房卡低价售Sa9Ix苹果iPhone 17手机即将进入量产阶段...
重大通报,金花房卡制作链接黄帝... 您好!微信黄帝大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(黄帝大厅)大厅介绍:...
头条推荐!金花房卡是正规的兄弟... 兄弟大厅/新道游房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
科技实测!怎么买斗牛房卡龙马大... 龙马大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:332900...
科技实测!游戏推荐斗牛房卡出售... 您好!微信悠悠众娱大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(悠悠众娱)大厅介绍:...
玩家攻略,怎么买斗牛房卡至尊大... 今 日消息,至尊大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
玩家攻略,游戏推荐牛牛房卡出售... 金牛座厅/新西部房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
IA解析/怎么买斗牛房卡海蓝大... IA解析/怎么买斗牛房卡海蓝大厅/开群怎么买房卡海蓝大厅是一款非常受欢迎的游戏,咨询房/卡添加微信:...
我来教你/金花房卡批发价龙王大... 我来教你/金花房卡批发价龙王大厅/房卡怎么搞Sa9Ix苹果iPhone 17手机即将进入量产阶段。有...
我来教你/牛牛房卡制作链接卡农... 今 日消息,卡农大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
IA解析/金花房卡专卖店芝麻大... 微信游戏中心:芝麻大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...