This the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Playbooks

How to initialize infra and database with ansible playbooks

初始化

Pigsty采用声明式的接口,当配置完成之后,您只需要运行固定的Playbook,即可完成初始化。

初始化操作分为两部分:

同时,目标也分为两种:

  • 元节点
  • 普通节点

操作需要满足以下两条约束

  • 必须在初始化普通的节点基础设施前,完成元节点的基础设施初始化
  • 初始化数据库前,必须完成基础设施的初始化

操作顺序

步骤\对象 元节点 普通节点
基础设施 1 2
数据库 3 4
# 基础设施初始化
./infra.yml -l meta            # 初始化元节点的基础设施(通常只需在环境初始化时执行一次)
./infra.yml -l <cluster-name>  # 初始化普通节点上的基础设施(每次新增集群时执行)

# 数据库集群初始化
./initdb.yml -l <cluster>      # 初始化普通节点上的数据库集群(也可以在元节点上初始化数据库)

其他常见操作

  • 操作时序
  • 使用参数控制执行对象
  • 使用标签控制执行内容
  • 抹除现有集群
  • 向集群添加新实例
  • 从集群中移除实例

1 - Infra Provision

How to provision infrastructure

选择性执行

您可以通过ansible的标签机制,可以选择执行剧本的一个子集。

例如,如果您只想执行本地源初始化的部分,则可以通过以下命令进行

./infra.yml --tags=repo

默认任务

使用以下命令可以列出所有基础设施初始化会执行的任务,以及可以使用的标签:

./infra.yml --list-tasks

默认任务如下:

playbook: ./infra.yml

  play #1 (meta): Init local repo	TAGS: [repo]
    tasks:
      Create local repo directory	TAGS: [repo, repo_dir]
      Backup & remove existing repos	TAGS: [repo, repo_upstream]
      Add required upstream repos	TAGS: [repo, repo_upstream]
      Check repo pkgs cache exists	TAGS: [repo, repo_prepare]
      Set fact whether repo_exists	TAGS: [repo, repo_prepare]
      Move upstream repo to backup	TAGS: [repo, repo_prepare]
      Add local file system repos	TAGS: [repo, repo_prepare]
      repo : Remake yum cache if not exists	TAGS: [repo, repo_prepare]
      Install repo bootstrap packages	TAGS: [repo, repo_boot]
      Render repo nginx server files	TAGS: [repo, repo_nginx]
      Disable selinux for repo server	TAGS: [repo, repo_nginx]
      Launch repo nginx server	TAGS: [repo, repo_nginx]
      Waits repo server online	TAGS: [repo, repo_nginx]
      repo : Download web url packages	TAGS: [repo, repo_download]
      Download repo packages	TAGS: [repo, repo_download]
      Download repo pkg deps	TAGS: [repo, repo_download]
      Create local repo index	TAGS: [repo, repo_download]
      repo : Copy bootstrap scripts	TAGS: [repo, repo_download, repo_script]
      Mark repo cache as valid	TAGS: [repo, repo_download]

  play #2 (all): Provision Node	TAGS: [node]
    tasks:
      Update node hostname	TAGS: [node, node_name]
      node : Add new hostname to /etc/hosts	TAGS: [node, node_name]
      node : Write static dns records	TAGS: [node, node_dns]
      node : Get old nameservers	TAGS: [node, node_resolv]
      node : Truncate resolv file	TAGS: [node, node_resolv]
      node : Write resolv options	TAGS: [node, node_resolv]
      node : Add new nameservers	TAGS: [node, node_resolv]
      node : Append old nameservers	TAGS: [node, node_resolv]
      node : Node configure disable firewall	TAGS: [node, node_firewall]
      node : Node disable selinux by default	TAGS: [node, node_firewall]
      node : Backup existing repos	TAGS: [node, node_repo]
      node : Install upstream repo	TAGS: [node, node_repo]
      node : Install local repo	TAGS: [node, node_repo]
      Install node basic packages	TAGS: [node, node_pkgs]
      Install node extra packages	TAGS: [node, node_pkgs]
      node : Install meta specific packages	TAGS: [node, node_pkgs]
      Install node basic packages	TAGS: [node, node_pkgs]
      Install node extra packages	TAGS: [node, node_pkgs]
      node : Install meta specific packages	TAGS: [node, node_pkgs]
      node : Node configure disable numa	TAGS: [node, node_feature]
      node : Node configure disable swap	TAGS: [node, node_feature]
      node : Node configure unmount swap	TAGS: [node, node_feature]
      node : Node setup static network	TAGS: [node, node_feature]
      node : Node configure disable firewall	TAGS: [node, node_feature]
      node : Node configure disk prefetch	TAGS: [node, node_feature]
      node : Enable linux kernel modules	TAGS: [node, node_kernel]
      node : Enable kernel module on reboot	TAGS: [node, node_kernel]
      node : Get config parameter page count	TAGS: [node, node_tuned]
      node : Get config parameter page size	TAGS: [node, node_tuned]
      node : Tune shmmax and shmall via mem	TAGS: [node, node_tuned]
      node : Create tuned profiles	TAGS: [node, node_tuned]
      node : Render tuned profiles	TAGS: [node, node_tuned]
      node : Active tuned profile	TAGS: [node, node_tuned]
      node : Change additional sysctl params	TAGS: [node, node_tuned]
      node : Copy default user bash profile	TAGS: [node, node_profile]
      Setup node default pam ulimits	TAGS: [node, node_ulimit]
      node : Create os user group admin	TAGS: [node, node_admin]
      node : Create os user admin	TAGS: [node, node_admin]
      node : Grant admin group nopass sudo	TAGS: [node, node_admin]
      node : Add no host checking to ssh config	TAGS: [node, node_admin]
      node : Add admin ssh no host checking	TAGS: [node, node_admin]
      node : Fetch all admin public keys	TAGS: [node, node_admin]
      node : Exchange all admin ssh keys	TAGS: [node, node_admin]
      node : Install public keys	TAGS: [node, node_admin]
      node : Install ntp package	TAGS: [node, ntp_install]
      node : Install chrony package	TAGS: [node, ntp_install]
      Setup default node timezone	TAGS: [node, ntp_config]
      node : Copy the ntp.conf file	TAGS: [node, ntp_config]
      node : Copy the chrony.conf template	TAGS: [node, ntp_config]
      node : Launch ntpd service	TAGS: [node, ntp_launch]
      node : Launch chronyd service	TAGS: [node, ntp_launch]

  play #3 (meta): Init meta service	TAGS: [meta]
    tasks:
      Create local ca directory	TAGS: [ca, ca_dir, meta]
      Copy ca cert from local files	TAGS: [ca, ca_copy, meta]
      Check ca key cert exists	TAGS: [ca, ca_create, meta]
      ca : Create self-signed CA key-cert	TAGS: [ca, ca_create, meta]
      Make sure nginx package installed	TAGS: [meta, nginx]
      Copy nginx default config	TAGS: [meta, nginx]
      Copy nginx upstream conf	TAGS: [meta, nginx]
      nginx : Create local html directory	TAGS: [meta, nginx]
      Update default nginx index page	TAGS: [meta, nginx]
      Restart meta nginx service	TAGS: [meta, nginx]
      Wait for nginx service online	TAGS: [meta, nginx]
      Make sure nginx exporter installed	TAGS: [meta, nginx, nginx_exporter]
      Config nginx_exporter options	TAGS: [meta, nginx, nginx_exporter]
      Restart nginx_exporter service	TAGS: [meta, nginx, nginx_exporter]
      Wait for nginx exporter online	TAGS: [meta, nginx, nginx_exporter]
      Install prometheus and alertmanager	TAGS: [meta, prometheus, prometheus_install]
      Wipe out prometheus config dir	TAGS: [meta, prometheus, prometheus_clean]
      Wipe out existing prometheus data	TAGS: [meta, prometheus, prometheus_clean]
      Recreate prometheus data dir	TAGS: [meta, prometheus, prometheus_config]
      Copy /etc/prometheus configs	TAGS: [meta, prometheus, prometheus_config]
      Copy /etc/prometheus opts	TAGS: [meta, prometheus, prometheus_config]
      Overwrite prometheus scrape_interval	TAGS: [meta, prometheus, prometheus_config]
      Overwrite prometheus evaluation_interval	TAGS: [meta, prometheus, prometheus_config]
      Overwrite prometheus scrape_timeout	TAGS: [meta, prometheus, prometheus_config]
      Overwrite prometheus pg metrics path	TAGS: [meta, prometheus, prometheus_config]
      Launch prometheus service	TAGS: [meta, prometheus, prometheus_launch]
      prometheus : Launch alertmanager service	TAGS: [meta, prometheus, prometheus_launch]
      Wait for prometheus online	TAGS: [meta, prometheus, prometheus_launch]
      prometheus : Wait for alertmanager online	TAGS: [meta, prometheus, prometheus_launch]
      Make sure grafana is installed	TAGS: [grafana, grafana_install, meta]
      Check grafana plugin cache exists	TAGS: [grafana, grafana_plugin, meta]
      Provision grafana plugins via cache	TAGS: [grafana, grafana_plugin, meta]
      Download grafana plugins from web	TAGS: [grafana, grafana_plugin, meta]
      Download grafana plugins from web	TAGS: [grafana, grafana_plugin, meta]
      Create grafana plugins cache	TAGS: [grafana, grafana_plugin, meta]
      Copy /etc/grafana/grafana.ini	TAGS: [grafana, grafana_config, meta]
      Remove grafana provision dir	TAGS: [grafana, grafana_config, meta]
      grafana : Copy provisioning content	TAGS: [grafana, grafana_config, meta]
      grafana : Copy pigsty dashboards	TAGS: [grafana, grafana_config, meta]
      grafana : Copy pigsty icon image	TAGS: [grafana, grafana_config, meta]
      Replace grafana icon with pigsty	TAGS: [grafana, grafana_config, grafana_customize, meta]
      Launch grafana service	TAGS: [grafana, grafana_launch, meta]
      Wait for grafana online	TAGS: [grafana, grafana_launch, meta]
      Update grafana default preferences	TAGS: [grafana, grafana_provision, meta]
      Register consul grafana service	TAGS: [grafana, grafana_register, meta]
      grafana : Reload consul	TAGS: [grafana, grafana_register, meta]

  play #4 (all): Init dcs	TAGS: []
    tasks:
      Check for existing consul	TAGS: [consul_check, dcs]
      consul : Consul exists flag fact set	TAGS: [consul_check, dcs]
      Abort due to consul exists	TAGS: [consul_check, dcs]
      Clean existing consul instance	TAGS: [consul_check, dcs]
      Stop any running consul instance	TAGS: [consul_check, dcs]
      Remove existing consul dir	TAGS: [consul_check, dcs]
      Recreate consul dir	TAGS: [consul_check, dcs]
      Make sure consul is installed	TAGS: [consul_install, dcs]
      Make sure consul dir exists	TAGS: [consul_config, dcs]
      consul : Get dcs server node names	TAGS: [consul_config, dcs]
      consul : Get dcs node name from var	TAGS: [consul_config, dcs]
      consul : Get dcs node name from var	TAGS: [consul_config, dcs]
      consul : Fetch hostname as dcs node name	TAGS: [consul_config, dcs]
      consul : Get dcs name from hostname	TAGS: [consul_config, dcs]
      Copy /etc/consul.d/consul.json	TAGS: [consul_config, dcs]
      Copy consul agent service	TAGS: [consul_config, dcs]
      consul : Get dcs bootstrap expect quroum	TAGS: [consul_server, dcs]
      Copy consul server service unit	TAGS: [consul_server, dcs]
      Launch consul server service	TAGS: [consul_server, dcs]
      Wait for consul server online	TAGS: [consul_server, dcs]
      Launch consul agent service	TAGS: [consul_agent, dcs]
      Wait for consul agent online	TAGS: [consul_agent, dcs]

  play #5 (meta): Copy ansible scripts	TAGS: [ansible]
    tasks:
      Create ansible tarball	TAGS: [ansible]
      Create ansible directory	TAGS: [ansible]
      Copy ansible tarball	TAGS: [ansible]
      Extract tarball	TAGS: [ansible]

2 - PgSQL Provision

How to provision database clusters

选择性执行

指定执行任务

您可以通过ansible的标签机制,可以选择执行剧本的一个子集。

例如,如果您只想执行初始化用户权限系统和模板的部分,则可以通过以下命令进行

./initdb.yml --tags=pg_init

指定执行对象

另外,通过limit子句,您可以选择需要执行的对象:

./initdb.yml -l pg-test

该剧本将会在pg-test集群的所有成员上执行,而不会影响环境中的其他集群。

建议在生产环境中操作时,总是指定-l参数,避免误操作(比如把整个环境中的数据库全抹干净了)

默认任务

使用以下命令可以列出所有基础设施初始化会执行的任务,以及可以使用的标签:

./initdb.yml --list-tasks

默认任务如下:

playbook: ./initdb.yml

  play #1 (all): Init database cluster	TAGS: []
    tasks:
      Create os group postgres	TAGS: [instal, pg_dbsu, postgres]
      postgres : Make sure dcs group exists	TAGS: [instal, pg_dbsu, postgres]
      postgres : Create dbsu {{ pg_dbsu }}	TAGS: [instal, pg_dbsu, postgres]
      postgres : Grant dbsu nopass sudo	TAGS: [instal, pg_dbsu, postgres]
      postgres : Grant dbsu all sudo	TAGS: [instal, pg_dbsu, postgres]
      postgres : Grant dbsu limited sudo	TAGS: [instal, pg_dbsu, postgres]
      postgres : Config patroni watchdog support	TAGS: [instal, pg_dbsu, postgres]
      postgres : Add dbsu ssh no host checking	TAGS: [instal, pg_dbsu, postgres]
      postgres : Fetch dbsu public keys	TAGS: [instal, pg_dbsu, postgres]
      postgres : Exchange dbsu ssh keys	TAGS: [instal, pg_dbsu, postgres]
      postgres : Install offical pgdg yum repo	TAGS: [instal, pg_install, postgres]
      postgres : Install pg packages	TAGS: [instal, pg_install, postgres]
      postgres : Install pg extensions	TAGS: [instal, pg_install, postgres]
      postgres : Link /usr/pgsql to current version	TAGS: [instal, pg_install, postgres]
      postgres : Add pg bin dir to profile path	TAGS: [instal, pg_install, postgres]
      postgres : Fix directory ownership	TAGS: [instal, pg_install, postgres]
      Remove default postgres service	TAGS: [instal, pg_install, postgres]
      postgres : Check necessary variables exists	TAGS: [always, pg_preflight, postgres, preflight]
      postgres : Fetch variables via pg_cluster	TAGS: [always, pg_preflight, postgres, preflight]
      postgres : Set cluster basic facts for hosts	TAGS: [always, pg_preflight, postgres, preflight]
      postgres : Assert cluster primary singleton	TAGS: [always, pg_preflight, postgres, preflight]
      postgres : Setup cluster primary ip address	TAGS: [always, pg_preflight, postgres, preflight]
      postgres : Setup repl upstream for primary	TAGS: [always, pg_preflight, postgres, preflight]
      postgres : Setup repl upstream for replicas	TAGS: [always, pg_preflight, postgres, preflight]
      postgres : Debug print instance summary	TAGS: [always, pg_preflight, postgres, preflight]
      Check for existing postgres instance	TAGS: [pg_check, postgres, prepare]
      postgres : Set fact whether pg port is open	TAGS: [pg_check, postgres, prepare]
      Abort due to existing postgres instance	TAGS: [pg_check, postgres, prepare]
      Clean existing postgres instance	TAGS: [pg_check, postgres, prepare]
      Shutdown existing postgres service	TAGS: [pg_clean, postgres, prepare]
      postgres : Remove registerd consul service	TAGS: [pg_clean, postgres, prepare]
      Remove postgres metadata in consul	TAGS: [pg_clean, postgres, prepare]
      Remove existing postgres data	TAGS: [pg_clean, postgres, prepare]
      postgres : Make sure main and backup dir exists	TAGS: [pg_dir, postgres, prepare]
      Create postgres directory structure	TAGS: [pg_dir, postgres, prepare]
      postgres : Create pgbouncer directory structure	TAGS: [pg_dir, postgres, prepare]
      postgres : Create links from pgbkup to pgroot	TAGS: [pg_dir, postgres, prepare]
      postgres : Create links from current cluster	TAGS: [pg_dir, postgres, prepare]
      postgres : Copy pg_cluster to /pg/meta/cluster	TAGS: [pg_meta, postgres, prepare]
      postgres : Copy pg_version to /pg/meta/version	TAGS: [pg_meta, postgres, prepare]
      postgres : Copy pg_instance to /pg/meta/instance	TAGS: [pg_meta, postgres, prepare]
      postgres : Copy pg_seq to /pg/meta/sequence	TAGS: [pg_meta, postgres, prepare]
      postgres : Copy pg_role to /pg/meta/role	TAGS: [pg_meta, postgres, prepare]
      Copy postgres scripts to /pg/bin/	TAGS: [pg_scripts, postgres, prepare]
      postgres : Copy alias profile to /etc/profile.d	TAGS: [pg_scripts, postgres, prepare]
      Copy psqlrc to postgres home	TAGS: [pg_scripts, postgres, prepare]
      postgres : Setup hostname to pg instance name	TAGS: [pg_hostname, postgres, prepare]
      postgres : Copy consul node-meta definition	TAGS: [pg_nodemeta, postgres, prepare]
      postgres : Restart consul to load new node-meta	TAGS: [pg_nodemeta, postgres, prepare]
      postgres : Config patroni watchdog support	TAGS: [pg_watchdog, postgres, prepare]
      postgres : Get config parameter page count	TAGS: [pg_config, postgres]
      postgres : Get config parameter page size	TAGS: [pg_config, postgres]
      postgres : Tune shared buffer and work mem	TAGS: [pg_config, postgres]
      postgres : Hanlde small size mem occasion	TAGS: [pg_config, postgres]
      Calculate postgres mem params	TAGS: [pg_config, postgres]
      postgres : create patroni config dir	TAGS: [pg_config, postgres]
      postgres : use predefined patroni template	TAGS: [pg_config, postgres]
      postgres : Render default /pg/conf/patroni.yml	TAGS: [pg_config, postgres]
      postgres : Link /pg/conf/patroni to /pg/bin/	TAGS: [pg_config, postgres]
      postgres : Link /pg/bin/patroni.yml to /etc/patroni/	TAGS: [pg_config, postgres]
      postgres : Config patroni watchdog support	TAGS: [pg_config, postgres]
      postgres : create patroni systemd drop-in dir	TAGS: [pg_config, postgres]
      Copy postgres systemd service file	TAGS: [pg_config, postgres]
      postgres : create patroni systemd drop-in file	TAGS: [pg_config, postgres]
      postgres : Render default initdb scripts	TAGS: [pg_config, postgres]
      postgres : Launch patroni on primary instance	TAGS: [pg_primary, postgres]
      postgres : Wait for patroni primary online	TAGS: [pg_primary, postgres]
      Wait for postgres primary online	TAGS: [pg_primary, postgres]
      Check primary postgres service ready	TAGS: [pg_primary, postgres]
      postgres : Check replication connectivity to primary	TAGS: [pg_primary, postgres]
      postgres : Render default pg-init scripts	TAGS: [pg_init, pg_init_config, postgres]
      postgres : Render template init script	TAGS: [pg_init, pg_init_config, postgres]
      postgres : Execute initialization scripts	TAGS: [pg_init, postgres]
      postgres : Check primary instance ready	TAGS: [pg_init, postgres]
      postgres : Add dbsu password to pgpass if exists	TAGS: [pg_pass, postgres]
      postgres : Add system user to pgpass	TAGS: [pg_pass, postgres]
      postgres : Check replication connectivity to primary	TAGS: [pg_replica, postgres]
      postgres : Launch patroni on replica instances	TAGS: [pg_replica, postgres]
      postgres : Wait for patroni replica online	TAGS: [pg_replica, postgres]
      Wait for postgres replica online	TAGS: [pg_replica, postgres]
      Check replica postgres service ready	TAGS: [pg_replica, postgres]
      postgres : Render hba rules	TAGS: [pg_hba, postgres]
      postgres : Reload hba rules	TAGS: [pg_hba, postgres]
      postgres : Pause patroni	TAGS: [pg_patroni, postgres]
      postgres : Stop patroni on replica instance	TAGS: [pg_patroni, postgres]
      postgres : Stop patroni on primary instance	TAGS: [pg_patroni, postgres]
      Launch raw postgres on primary	TAGS: [pg_patroni, postgres]
      Launch raw postgres on primary	TAGS: [pg_patroni, postgres]
      Wait for postgres online	TAGS: [pg_patroni, postgres]
      postgres : Check pgbouncer is installed	TAGS: [pgbouncer, pgbouncer_check, postgres]
      postgres : Stop existing pgbouncer service	TAGS: [pgbouncer, pgbouncer_clean, postgres]
      postgres : Remove existing pgbouncer dirs	TAGS: [pgbouncer, pgbouncer_clean, postgres]
      Recreate dirs with owner postgres	TAGS: [pgbouncer, pgbouncer_clean, postgres]
      postgres : Copy /etc/pgbouncer/pgbouncer.ini	TAGS: [pgbouncer, pgbouncer_config, postgres]
      postgres : Copy /etc/pgbouncer/pgb_hba.conf	TAGS: [pgbouncer, pgbouncer_config, postgres]
      postgres : Touch userlist and database list	TAGS: [pgbouncer, pgbouncer_config, postgres]
      postgres : Add default users to pgbouncer	TAGS: [pgbouncer, pgbouncer_config, postgres]
      postgres : Copy pgbouncer systemd service	TAGS: [pgbouncer, pgbouncer_launch, postgres]
      postgres : Launch pgbouncer pool service	TAGS: [pgbouncer, pgbouncer_launch, postgres]
      postgres : Wait for pgbouncer service online	TAGS: [pgbouncer, pgbouncer_launch, postgres]
      postgres : Check pgbouncer service is ready	TAGS: [pgbouncer, pgbouncer_launch, postgres]
      postgres : Render business init script	TAGS: [business, pg_biz_config, pg_biz_init, postgres]
      postgres : Render database baseline sql	TAGS: [business, pg_biz_config, pg_biz_init, postgres]
      postgres : Execute business init script	TAGS: [business, pg_biz_init, postgres]
      postgres : Execute database baseline sql	TAGS: [business, pg_biz_init, postgres]
      postgres : Add pgbouncer busniess users	TAGS: [business, pg_biz_pgbouncer, postgres]
      postgres : Add pgbouncer busniess database	TAGS: [business, pg_biz_pgbouncer, postgres]
      postgres : Restart pgbouncer	TAGS: [business, pg_biz_pgbouncer, postgres]
      Copy postgres service definition	TAGS: [pg_register, postgres, register]
      postgres : Reload consul service	TAGS: [pg_register, postgres, register]
      postgres : Render grafana datasource definition	TAGS: [pg_grafana, postgres, register]
      postgres : Register datasource to grafana	TAGS: [pg_grafana, postgres, register]
      monitor : Create /etc/pg_exporter conf dir	TAGS: [monitor, pg_exporter]
      monitor : Copy default pg_exporter.yaml	TAGS: [monitor, pg_exporter]
      monitor : Config /etc/default/pg_exporter	TAGS: [monitor, pg_exporter]
      monitor : Config pg_exporter service unit	TAGS: [monitor, pg_exporter]
      monitor : Launch pg_exporter systemd service	TAGS: [monitor, pg_exporter]
      monitor : Wait for pg_exporter service online	TAGS: [monitor, pg_exporter]
      monitor : Register pg-exporter consul service	TAGS: [monitor, pg_exporter]
      monitor : Reload pg-exporter consul service	TAGS: [monitor, pg_exporter]
      monitor : Config pgbouncer_exporter opts	TAGS: [monitor, pgbouncer_exporter]
      monitor : Config pgbouncer_exporter service	TAGS: [monitor, pgbouncer_exporter]
      monitor : Launch pgbouncer_exporter service	TAGS: [monitor, pgbouncer_exporter]
      monitor : Wait for pgbouncer_exporter online	TAGS: [monitor, pgbouncer_exporter]
      monitor : Register pgb-exporter consul service	TAGS: [monitor, pgbouncer_exporter]
      monitor : Reload pgb-exporter consul service	TAGS: [monitor, pgbouncer_exporter]
      monitor : Copy node_exporter systemd service	TAGS: [monitor, node_exporter]
      monitor : Config default node_exporter options	TAGS: [monitor, node_exporter]
      monitor : Launch node_exporter service unit	TAGS: [monitor, node_exporter]
      monitor : Wait for node_exporter online	TAGS: [monitor, node_exporter]
      monitor : Register node-exporter service	TAGS: [monitor, node_exporter]
      monitor : Reload node-exporter consul service	TAGS: [monitor, node_exporter]
      proxy : Templating /etc/default/vip-manager.yml	TAGS: [proxy, vip]
      proxy : create vip-manager. systemd drop-in dir	TAGS: [proxy, vip]
      proxy : create vip-manager systemd drop-in file	TAGS: [proxy, vip]
      proxy : Launch vip-manager	TAGS: [proxy, vip]
      proxy : Set pg_instance in case of absence	TAGS: [haproxy, proxy]
      proxy : Fetch postgres cluster memberships	TAGS: [haproxy, proxy]
      Templating /etc/haproxyhaproxy.cfg	TAGS: [haproxy, proxy]
      Copy haproxy systemd service file	TAGS: [haproxy, proxy]
      Launch haproxy load balancer service	TAGS: [haproxy, proxy]
      Wait for haproxy load balancer online	TAGS: [haproxy, proxy]
      Copy haproxy service definition	TAGS: [haproxy_register, proxy]
      Reload haproxy consul service	TAGS: [haproxy_register, proxy]