Study Area Facebook粉絲團http://www.facebook.com/sataiwan
0 會員 與 1 訪客 正在閱讀本文。
CentOS Linux release 7.2.1511 (Core)
ansible 2.1.0.0 config file = /etc/ansible/ansible.cfg configured module search path = Default w/o overrides
---- name: Setup | Percona XtraDB Cluster hosts: db tasks: - name: Setup | Percona yum Repository yum: name=http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm state=present - name: Setup | Install EPEL Repository yum: name=epel-release update_cache=yes state=present - name: Setup | Install Percona-XtraDB-Cluster-56 Package yum: name=Percona-XtraDB-Cluster-56 update_cache=yes state=present - name: Setup | Install Requirement Packages yum: name={{ item }} state=present update_cache=yes # 裝這二個套件主要是要讓控制端主機要有MySQL的libary,這樣才能與遠端的主機裡的資料庫做溝通,如果沒有的話就會出現 "the python mysqldb module is required" with_items: - mysql-devel # 本機端的libary - MySQL-python # 給python用的libary - name: Setup | Create Mysql Data Directories file: path={{ item }} state=directory recurse=yes owner=mysql group=mysql mode=0755 with_items: - /var/log/mysql - name: Setup | Mysql Configuration # 使用 Jinja2 的範本,來做設定檔的維護 template: src=./templates/my_cnf_test.j2 dest=/etc/my.cnf # 這個變數會套進剛剛設定的my_cnf_test.j2 vars: - gcomm_list: 192.168.1.100 # notify 是用來觸發事件,通常會跟handlers一起使用,而且只會跑一次,在此劇本目前只會觸發二件事,一個啟動mysql service,另一個是更新root密碼 notify: - restart_mysql - Update MySQL root password - Create Database # handlers 事件處理器,也就是被notify所調用 handlers: - name: restart_mysql service: name=mysql@bootstrap.service state=restarted - name: Update MySQL root password run_once: true mysql_user: # 有驗証的登入使用者 login_user=root # 登入者的密碼 login_password="\n" # 建立使用者的名字或是已存在的使用者 name=root # 設定密碼 password='123456789' # 設定權限; 語法是: 資料庫.資料表:權限1,權限2 # 小建議,如果是設定權限時,最好是用雙引號包起來,避免會有語法上的錯誤 priv=*.*:ALL,GRANT # host預設就是localhost,如果有要連別的主機就可以用這選項 host={{ item }} # present=安裝 absent=移除 state=present # 檢查MySQL允許用root/NOPASSWORD登入之前嘗試提供憑証(這個不設也可以用) check_implicit_admin=True with_items: - localhost - name: Setup | Create MySQL Database mysql_db: # 有驗証的登入使用者 login_user=root # 使用者的登入密碼 login_password='123456789' # 建立資料庫的名稱 name=Apple # present=安裝 absent=移除 state=present
[mysqld]# Path to Galera librarywsrep_provider=/usr/lib64/libgalera_smm.so# Cluster connection URLwsrep_cluster_address=gcomm://{{ gcomm_list }}# In order for Galera to work correctly binlog format should be ROWbinlog_format=ROW# MyISAM storage engine has only experimental supportdefault_storage_engine=InnoDB# This changes how |InnoDB| autoincrement locks are managed and is a requirement for Galerainnodb_autoinc_lock_mode=2
PLAY [Setup | Percona XtraDB Cluster] **************************************************TASK [setup] *******************************************************************ok: [db]TASK [Setup | Percona yum Repository] ******************************************changed: [db]TASK [Setup | Install EPEL Repository] *****************************************changed: [db]TASK [Setup | Install Percona-XtraDB-Cluster-56 Package] ***********************changed: [db]TASK [Setup | Install Requirement Packages] ************************************changed: [db] => (item=[u'mysql-devel', u'MySQL-python'])TASK [Setup | Create Mysql Data Directories] ***********************************changed: [db] => (item=/var/log/mysql)TASK [Setup | Mysql Configuration] *********************************************changed: [db]RUNNING HANDLER [restart_mysql] ************************************************changed: [db]RUNNING HANDLER [Update MySQL root password] ***********************************changed: [db] => (item=localhost)RUNNING HANDLER [Create MySQL Database] ****************************************changed: [db]PLAY RECAP *********************************************************************db : ok=10 changed=9 unreachable=0 failed=0
login_unix_socket="你設定檔裡指定socket的位置