在lamp(linux, apache, mysql, php)环境中实现自动化部署,可以利用一些自动化工具和方法。以下是一个基本指南,介绍如何使用ansible来实现lamp的自动化部署。
准备工作
- Ansible控制节点:这是一个用于执行自动化任务的服务器。
- Ansible托管节点:这些是安装有LAMP组件的服务器,可以是CentOS 7、CentOS Stream、Rocky Linux或Ubuntu等Linux发行版。
- 时钟同步:确保控制节点与托管节点之间的时间同步。
步骤
1. 安装Ansible
在控制节点上安装Ansible:
sudo apt update sudo apt install ansible
2. 配置Ansible
创建Ansible配置文件ansible.cfg:
cat > ansible.cfg << EOF [defaults] host_key_checking = False inventory = inventory EOF
创建清单文件inventory,定义托管节点:
cat > inventory << EOF [mysql] rocky ansible_ssh_host=10.211.55.78 ubuntu ansible_ssh_host=10.211.55.75 EOF
3. 创建Playbook
创建一个名为mariadb_install的目录,并在其中创建playbook.yaml文件:
mkdir mariadb_install cd mariadb_install nano playbook.yaml
填充以下内容:
本系统经过多次升级改造,系统内核经过多次优化组合,已经具备相对比较方便快捷的个性化定制的特性,用户部署完毕以后,按照自己的运营要求,可实现快速定制会费管理,支持在线缴费和退费功能财富中心,管理会员的诚信度数据单客户多用户登录管理全部信息支持审批和排名不同的会员级别有不同的信息发布权限企业站单独生成,企业自主决定更新企业站信息留言、询价、报价统一管理,分系统查看分类信息参数化管理,支持多样分类信息,
- name: Install Mariadb server
hosts: all
become: true
gather_facts: true
vars:
is_create_db: false
is_create_root: false
is_create_user: false
is_setting_profile: false
dbs_list:
- db1
- db2
users_list:
- aiops
- weiwendi
password: password
collections:
- ansible.builtin
- ansible.posix
tasks:
- name: Ensure Ansible is up to date
apt:
name: ansible
state: present
- name: Install MariaDB server
apt:
name: mariadb-server
state: present
- name: Start and enable MariaDB service
systemd:
name: mariadb
state: started
enabled: yes
- name: Create database and users
shell: |
mysql -u root -p{{ password }} -e "CREATE DATABASE {{ item.0.dbs_list[item.1] }};"
mysql -u root -p{{ password }} -e "CREATE USER '{{ item.0.users_list[item.1] }}'@'localhost' IDENTIFIED BY '{{ item.0.password }}';"
mysql -u root -p{{ password }} -e "GRANT ALL PRIVILEGES ON {{ item.0.dbs_list[item.1] }}.* TO '{{ item.0.users_list[item.1] }}'@'localhost';"
loop:
- { "dbs_list": dbs_list, "users_list": users_list, "password": password }
loop_control:
loop_var: item
4. 执行Playbook
在控制节点上执行Playbook:
ansible-playbook playbook.yaml
注意事项
-
安全性:应使用Ansible vault对敏感信息(如密码)进行加密。
-
测试:在将脚本应用到生产环境之前,务必在测试环境中验证其正确性和稳定性。
-
灵活性:根据具体需求,可以修改Playbook中的变量和配置,以适应不同的部署需求。
通过上述步骤,你可以实现一个基本的LAMP自动化部署流程。根据具体需求,可以进一步扩展和优化自动化脚本。










