溫馨提示×

如何在LAMP中實現自動化部署

小樊
57
2025-04-21 06:30:31
欄目: 編程語言

在LAMP(Linux, Apache, MySQL, PHP)環境中實現自動化部署,可以借助一些自動化工具和方法。以下是一個基本的指南,使用Ansible來實現LAMP的自動化部署。

準備工作

  1. Ansible控制節點:用于執行自動化任務的控制節點。
  2. Ansible托管節點:安裝有LAMP組件的服務器,可以是CentOS 7、CentOS Stream、Rocky Linux或Ubuntu等Linux發行版。
  3. 時鐘同步:確??刂乒濣c與托管節點之間的時鐘同步。

步驟

1. 安裝Ansible

在控制節點上安裝Ansible:

sudo apt update
sudo apt install ansible

2. 配置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

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 }
        loop_control: item

4. 執行Playbook

在控制節點上執行Playbook:

ansible-playbook playbook.yaml

注意事項

  1. 安全性:敏感信息(如密碼)應使用Ansible vault加密。
  2. 測試:在生產環境之前,務必在測試環境中驗證腳本的正確性和穩定性。
  3. 靈活性:可以根據需要修改Playbook中的變量和配置,以適應不同的部署需求。

通過上述步驟,你可以實現一個基本的LAMP自動化部署流程。根據具體需求,可以進一步擴展和優化自動化腳本。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女