JYEONNI
PMM Client 설치를 위한 ansible playbook script 본문
- name: Install and configure PMM client
hosts: all
become: true
tasks:
- name: Add Percona repository
copy:
content: |
[percona-release-x86_64]
name=Percona-Release YUM repository - x86_64
baseurl=http://repo.percona.com/percona/yum/release/7/RPMS/x86_64
enabled=1
gpgcheck=0
gpgkey=https://repo.percona.com/yum/RPM-GPG-KEY-percona
dest: /etc/yum.repos.d/percona.repo
- name: Install Percona release package
command: yum install https://repo.percona.com/yum/percona-release-latest.noarch.rpm --nogpgcheck -y
- name: Install PMM client
yum:
name: pmm2-client
state: present
- name: Get PMM server URL from host.yml
include_vars: host.yml
vars:
pmm_server_user: "{{ ansible_user }}"
pmm_server_key: "{{ ansible_ssh_private_key_file }}"
pmm_server_host: "{{ ansible_host }}"
- name: Load MySQL login password from Ansible Vault
include_vars: secret.yml
vars:
mysql_login_password: "{{ mysql_login_password }}"
- name: Configure PMM client
command: "pmm-admin config --server-insecure-tls --force --server-url=https://admin:'12341234'@{{ pmm_server_host }} generic {{ pmm_service_name }}"
- name: Create PMM client MySQL user
mysql_user:
name: pmm-client
password: pmm11!
host : 127.0.0.1
login_unix_socket: /tmp/mysql.sock
login_user: root
login_password: "{{ mysql_login_password }}"
state: present
- name: Grant privileges to PMM client MySQL user
mysql_user:
name: pmm-client
host: 127.0.0.1
priv: '*.*:SELECT, PROCESS, REPLICATION CLIENT'
login_user: root
login_password: "{{ mysql_login_password }}"
login_unix_socket: /tmp/mysql.sock
state: present
- name: Register MySQL service with PMM client
command: "pmm-admin add mysql --query-source=perfschema --username=pmm-client --password=pmm11! --service-name={{ pmm_service_name }} --host=localhost --port=3306"
- name: List PMM client inventory nodes
command: "pmm-admin inventory list nodes"
Add Percona repository:
Percona 저장소를 시스템에 추가합니다. 이 저장소는 Percona 소프트웨어를 설치하는 데 사용됩니다.
Percona 소프트웨어의 최신 버전을 설치하기 위해 저장소를 추가합니다.
Install Percona release package:
Percona 소프트웨어의 최신 릴리스 패키지를 설치합니다. 이것은 Percona 소프트웨어를 관리하기 위한 핵심 패키지입니다.
Install PMM client:
PMM 클라이언트를 설치합니다. 이것은 데이터베이스 및 인프라 성능 데이터를 수집하고 PMM 서버로 보내는 데 사용됩니다.
Get PMM server URL from host.yml:
PMM 서버의 URL과 관련된 정보를 host.yml 파일에서 가져옵니다. 이 정보는 PMM 클라이언트를 PMM 서버에 연결하는 데 사용됩니다.
Load MySQL login password from Ansible Vault:
Ansible Vault에서 MySQL 로그인 비밀번호를 로드합니다. 이것은 PMM 클라이언트가 MySQL 서버에 연결할 때 사용됩니다.
Configure PMM client:
PMM 클라이언트를 구성합니다. 이것은 PMM 서버와의 통신을 설정하고 PMM 클라이언트가 어떤 데이터를 수집할지 구성하는 단계입니다.
Create PMM client MySQL user:
PMM 클라이언트가 MySQL 서버에 연결할 수 있는 사용자를 생성합니다. 이것은 PMM 클라이언트가 MySQL 성능 데이터를 수집하는 데 사용됩니다.
Grant privileges to PMM client MySQL user:
PMM 클라이언트가 MySQL 서버의 성능 데이터를 수집할 수 있도록 권한을 부여합니다.
Register MySQL service with PMM client:
PMM 클라이언트를 사용하여 MySQL 서비스를 PMM 서버에 등록합니다. 이것은 PMM 서버에서 MySQL 데이터베이스의 성능을 모니터링할 수 있도록 합니다.
List PMM client inventory nodes:
PMM 클라이언트의 인벤토리 노드를 나열합니다. 이것은 PMM 서버에 등록된 모든 클라이언트 노드를 확인하는 데 사용됩니다.
이러한 단계를 통해 Ansible을 사용하여 PMM 클라이언트를 설치하고 PMM 서버와 통합하여 데이터베이스 및 인프라 성능을 모니터링할 수 있습니다.
주의할점 :
Create PMM client MySQL user:, Grant privileges to PMM client MySQL user
모듈을 사용하다가 운영DB가 다운될수있습니다.
PMM 클라이언트가 MySQL 서버에 접속하여 사용자를 생성하고 권한을 부여할 때, 실수로 인해 데이터베이스에 영향을 미칠 수 있습니다. 특히, 대규모 운영 환경에서는 이러한 작업을 수행하기 전에 신중하게 검토해야 합니다.
저는 set sql_log_bin=off;를 쓰고 create user문과 grant on to user 문을 사용하여 해결을 했습니다.