使用playbook實現一鍵部署mysql數據庫

環境

主機名 安裝服務 wan lan
db01 mariadb 10.0.0.51 172.16.1.51

流程分析

1.安裝ansible
2.優化ansible
3.推送公鑰
4.開啓防火牆
5.開啓80 443 873 nfs等端口和服務白名單
6.關閉selinux
7.建立同一的用戶
	1.安裝數據庫
	2.啓動數據庫
	3.建立數據庫用戶
	4.建立數據庫

主機清單

[root@m01 ~]# vim /etc/ansible/hosts
[db_group]
db01 ansible_ssh_host=172.16.1.51 asible_ssh_user=root ansible_ssh_port=22

導出數據庫數據

1.備份db01上的數據庫
mysqldump -uroot -p'1' -A wp > /root/wp.sql

2.將web01上備份的數據庫拷貝至m01服務器上
scp wp.sql  root@172.16.1.61:/root/ansible/lb/

yml

- hosts: all
  tasks:
    - name: install mariadb
      yum:
        name: mariadb-server
        state: present
      when: ansible_fqdn is match 'lb*'
        
    - name: start mariadb-server
      systemd:
        name: mariadb-server
        state: started
        enabled: yes
      when: ansible_fqdn is match 'lb*'

    - name: grant mysql user
      mysql_user:
      	#login_host: "localhost"
      	#login_user: "root"
     	#login_password: "123"
     	login_port: "3306"
      	name: "ty"
      	password: "123"
      	host: "%"
      	priv: "*.*:ALL,GRANT"
      	state: "present"
      when: ansible_fqdn is match 'lb*'

    - name: create a database
      mysql_db:
        #login_host: "127.0.0.1"
        #login_user: "root"
        #login_password: "123"
        login_port: "3306"
        name: "wp"
        encoding: "utf8"
        state: "present"   
      when: ansible_fqdn is match 'lb*'
        
    - name: copy wp.sql
      copy:
        src: "/root/ansible/lb/wp.sql"
        dest: "/root/"
      when: ansible_fqdn is match 'lb*'

    - name: import a database
      mysql_db:
        login_host: "127.0.0.1"
        login_user: "root"
        login_port: "3306"
        name: "wp"
        target: "/root/wp.sql"
        state: "import"
      when: ansible_fqdn is match 'lb*'

執行

1.執行base.yml
[root@m01 ~]# ansible-playbook ansible/base.yml 

2.執行rsync.yml
[root@m01 ~]# ansible-playbook ansible/nfs/nfs.yml -i /root/ansible/lb/hosts
相關文章
相關標籤/搜索