您的位置:首页 > 教育 > 培训 > playbooks 分布式部署 LNMP

playbooks 分布式部署 LNMP

2024/10/6 8:24:57 来源:https://blog.csdn.net/qq_43689451/article/details/140812030  浏览:    关键词:playbooks 分布式部署 LNMP

使用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: webserversbecome: yestasks:- name: 安装Nginxyum:name: nginxstate: present- name: 启动并启用Nginx服务systemd:name: nginxstate: startedenabled: yes- name: 配置Nginxtemplate:src: templates/nginx.conf.j2dest: /etc/nginx/nginx.confnotify:- restart nginxhandlers:- name: restart nginxsystemd:name: nginxstate: restarted

创建一个Nginx配置模板。

# templates/nginx.conf.j2user 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: dbserversbecome: yestasks:- name: 安装MySQLyum:name: mysql-serverstate: present- name: 启动并启用MySQL服务systemd:name: mysqldstate: startedenabled: yes- name: 设置MySQL root密码mysql_user:name: roothost: localhostpassword: "{{ mysql_root_password }}"login_unix_socket: /var/lib/mysql/mysql.sock- name: 创建数据库mysql_db:name: "{{ mysql_database }}"state: presentlogin_user: rootlogin_password: "{{ mysql_root_password }}"- name: 创建数据库用户并授予权限mysql_user:name: "{{ mysql_user }}"password: "{{ mysql_password }}"priv: "{{ mysql_database }}.*:ALL"state: presentlogin_user: rootlogin_password: "{{ mysql_root_password }}"
3.4. 安装PHP的Playbook

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

# playbooks/php.yml---
- hosts: webserversbecome: yestasks:- name: 安装EPEL仓库yum:name: epel-releasestate: present- name: 安装Remi仓库yum:name: http://rpms.remirepo.net/enterprise/remi-release-7.rpmstate: present- name: 启用Remi PHP仓库yum_repository:name: remi-php{{ php_version | replace('.', '') }}enabled: yes- name: 安装PHP和扩展yum:name: "{{ item }}"state: presentwith_items:- php- php-fpm- php-mysqlnd- name: 启动并启用PHP-FPM服务systemd:name: php-fpmstate: startedenabled: 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栈。这种方法确保了安装过程的一致性,并简化了大规模部署和管理的复杂性。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com