在LAMP(Linux, Apache, MySQL, PHP)環境中實現自動化部署,可以借助一些自動化工具和方法。以下是一個基本的指南,使用Ansible來實現LAMP的自動化部署。
在控制節點上安裝Ansible:
sudo apt update
sudo apt install ansible
創建Ansible配置文件ansible.cfg
:
cat <<EOF >> ansible.cfg
[defaults]
host_key_checking = False
inventory = inventory
EOF
創建清單文件inventory
,定義托管節點:
cat <<EOF >> inventory
[mysql]
rocky ansible_ssh_host=10.211.55.78
ubuntu ansible_ssh_host=10.211.55.75
EOF
創建一個名為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 }
loop_control: item
在控制節點上執行Playbook:
ansible-playbook playbook.yaml
通過上述步驟,你可以實現一個基本的LAMP自動化部署流程。根據具體需求,可以進一步擴展和優化自動化腳本。