timorunge.pmm_client

pmm_client

这个角色用于安装和配置 Percona PMM Client。

需求

此角色需要 Ansible 2.5.0 或更高版本。

您可以使用 pip 安装(并定义)一个稳定版本:

pip install ansible==2.8.4

所有平台要求都在元数据文件中列出。

安装

ansible-galaxy install timorunge.pmm_client

角色变量

可以传递给此角色的变量及其简单描述如下。(有关所有变量,请查看 defaults/main.yml

# 定义版本
# 类型:整数
pmm_client_version: 1.17.1
# pmm-server 的 IP 地址和端口:
# 类型:字符串
pmm_client_server_host: 172.20.0.10
# 类型:整数
pmm_client_server_port: 443
# 禁用基本认证:
# 类型:布尔值
pmm_client_server_basic_auth: false
# 启用 SSL:
# 类型:布尔值
pmm_client_server_use_ssl: true
# 在初始设置时强制设置客户端名称
# 类型:布尔值
pmm_client_force_setup: false
# 定义要添加或移除的服务:
# 类型:列表
pmm_client_add_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_remove_services:
  - mysql:queries
# 定义要启动或停止的服务:
# 类型:列表
pmm_client_start_services:
  - linux:metrics
  - mysql:metrics
  - mongodb:metrics
  - postgresql:metrics
pmm_client_stop_services:
  - mysql:queries
# 定义 MySQL 数据库连接的凭证:
# 类型:字典
pmm_client_db:
  mysql:
    host: localhost
    port: 3306
    username: root
    password: toor

示例

1) 安装不带基本认证且禁用 SSL 的 PMM 客户端

- hosts: all
  become: yes
  vars:
    pmm_client_server_host: 172.20.0.10
    pmm_client_server_port: 443
    pmm_client_server_basic_auth: false
    pmm_client_server_use_ssl: false
    pmm_client_add_services:
      - linux:metrics
    pmm_client_start_services:
      - linux:metrics
  roles:
    - timorunge.pmm_client

2) 安装带基本认证且启用 SSL 的 PMM 客户端

- hosts: all
  become: yes
  vars:
    pmm_client_server_host: 172.20.0.10
    pmm_client_server_port: 443
    pmm_client_server_basic_auth: true
    pmm_client_server_basic_auth_username: admin
    pmm_client_server_basic_auth_password: mySecurePassword
    pmm_client_server_use_ssl: true
    pmm_client_add_services:
      - linux:metrics
    pmm_client_start_services:
      - linux:metrics
  roles:
    - timorunge.pmm_client

3) 从指定 URL 安装 PMM 客户端

- hosts: all
  become: yes
  vars:
    pmm_client_version: 1.17.1
    pmm_client_version_revision: 1
    pmm_client_use_official_repo: false
    pmm_client_debian_pkg: "https://www.percona.com/downloads/pmm/{{ pmm_client_version }}/binary/debian/{{ ansible_distribution_release }}/x86_64/pmm-client_{{ pmm_client_version }}-{{ pmm_client_version_revision }}.{{ ansible_distribution_release }}_amd64.deb"
  roles:
    - timorunge.pmm_client

4) 强制设置 PMM 客户端

在某些情况下,您需要强制设置 PMM 客户端。例如,如果服务器无法访问或您使用之前用过的主机名进行了新设置。

您将收到如下消息:

TASK [timorunge.pmm-client : include_tasks] ********************************************************************************************************
included: ... ansible-pmm-client/tasks/server-config.yml for proxysql-aN8thi

TASK [timorunge.pmm-client : Check if PMM Client is configured] ************************************************************************************
fatal: [proxysql-aN8thi]: FAILED! => {"changed": false, "cmd": ["pmm-admin", "list"], ...

基本上,您有两个选择:

1) 通过 yaml 配置

- hosts: all
  become: yes
  vars:
    pmm_client_force_setup: true
  roles:
    - timorunge.pmm_client

2) 通过命令行

这是推荐的方法。

$ ansible-playbook main.yml -i inventory -b --limit "proxysql-aN8thi" --diff -e "{ pmm_client_force_setup: true }"

5) 卸载 PMM 客户端

- hosts: all
  become: yes
  vars:
    pmm_client_enabled: false
  roles:
    - timorunge.pmm_client

测试

Build Status

测试使用 Dockerdocker_test_runner 进行,该工具会启动以下具有不同环境设置的容器:

  • CentOS 7
  • Debian 9.4 (Stretch)
  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 18.04 (Bionic Beaver)

所有容器上安装了 Ansible 2.8.4,并应用 test playbook

有关更多详细信息和附加检查,请查看 docker_test_runner 配置Docker 入口点

# 本地测试:
curl https://raw.githubusercontent.com/timorunge/docker-test-runner/master/install.sh | sh
./docker_test_runner.py -f tests/docker_test_runner.yml

由于 Travis 上的构建时间限制,公共存储库的自动化测试仅限于:

  • CentOS 7
  • Debian 9.4 (Stretch)
  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 18.04 (Bionic Beaver)

依赖

许可证

BSD 3-Clause "New" or "Revised" License

作者信息

  • 基于 Chris Sam 的 Ansible 角色
  • 大幅修改者: Timo Runge
关于项目

Percona PMM Client for Debian and RedHat based distributions

安装
ansible-galaxy install timorunge.pmm_client
许可证
bsd-3-clause
下载
7.2k
拥有者