programing

maxscale을 통해 mariadb에 데이터베이스를 만들 수 있는 재생책

javamemo 2023. 10. 7. 09:07
반응형

maxscale을 통해 mariadb에 데이터베이스를 만들 수 있는 재생책

저는 maxscale로 관리되는 3노드 mariadb 클러스터(P-S-S)를 가지고 있습니다.내가 만든 아래 플레이북은 내 mariadb Primary에 직접 연결하여 데이터베이스를 만들 수 있습니다(내 인벤토리에서 mariadb Primary ip를 전달합니다).하지만 maxscale에 연결해서 mariadb primary 노드에 데이터베이스를 만들고 싶습니다.maxscale ip가 maxscale에 연결되어 Primary 노드에 데이터베이스를 만들 수 있기를 바라며 인벤토리에 maxscale ip를 전달하려고 했지만 계속 실패하고 있습니다.

---

- hosts: mysql
  become: yes

  vars:
    mysql_root_password: test_password

  tasks:
    - name: create new database
      mysql_db:
        name: ansible_db
        state: present
        login_user: test_user
        login_password: "{{ mysql_root_password }}"
        login_unix_socket: /var/lib/mysql/mysql.sock

내 인벤토리:

[mysql]
10.XXX.XX.XXX ansible_user=ssh_user ansible_pass=ssh_passwd ansible_become=yes ansible_become_method=su

maxscale을 통해 작성하려고 할 때 오류 발생:

Exception message: (2003, \"Can't connect to MySQL server on 'localhost' ([Errno 2] No such file or directory)\")

Mariaadb에 연결하기 위해 Maxscale 서버에서 사용해야 하는 연결 문자열은 다음과 같습니다.

mysql -u<db_user> -p<db_password> -h<ip of maxscale server> -P<port no of readwrite split listener>

이는 다음을 사용하여 불가능하게 복제할 수 있습니다.mysql_db모듈:

---

- hosts: mysql
     
  vars:
    mysql_root_password: <db_password>

  tasks:
   - name: create new database
      mysql_db:
        login_user: <db_user_name>
        login_password: "{{ mysql_root_password }}"
        login_host: <ip of maxscale server>
        login_port: <port no of readwrite split listener>
        name: <database name>
        state: present
      delegate_to: <ip of maxscale server>

언급URL : https://stackoverflow.com/questions/67223627/ansible-playbook-to-create-database-on-mariadb-via-maxscale

반응형