Pigsty安装详情

完成4节点沙箱环境,下载,配置,安装的完整操作记录

prepare

请参考 拉起沙箱环境过程记录 拉起本地4节点虚拟机沙箱,当然您也可以用其他办法创建几台虚拟机,或直接使用现有的物理机乃至云虚拟机进行部署。

登录管理节点,并确保可以ssh sudo其他节点:

$ ssh meta
[vagrant@meta ~]$ ssh 10.10.10.10 sudo hostname -a
Warning: Permanently added '10.10.10.10' (ECDSA) to the list of known hosts.
meta
[vagrant@meta ~]$ ssh 10.10.10.11 sudo hostname -a
Warning: Permanently added '10.10.10.11' (ECDSA) to the list of known hosts.
node-1
[vagrant@meta ~]$ ssh 10.10.10.12 sudo hostname -a
Warning: Permanently added '10.10.10.12' (ECDSA) to the list of known hosts.
node-2
[vagrant@meta ~]$ ssh 10.10.10.13 sudo hostname -a
Warning: Permanently added '10.10.10.13' (ECDSA) to the list of known hosts.
node-3

download

下载最新的Pigsty源码包至本地,大小约1MB。

[vagrant@meta ~]$ bash -c "$(curl -fsSL https://get.pigsty.cc/latest)"
[INFO] download pigsty.tgz from http://download.pigsty.cc/v1.5.1/pigsty.tgz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  897k  100  897k    0     0  1195k      0 --:--:-- --:--:-- --:--:-- 1195k
[INFO] extract /tmp/pigsty.tgz to /home/vagrant/pigsty
[HINT] proceed with cd ~/pigsty; ./configure; ./infra.yml;

使用源码包中自带的download脚本,下载离线软件包(可选)

[vagrant@meta ~]$ cd ./pigsty
[vagrant@meta pigsty]$ ./download pkg
[ OK ] download from CDN http://download.pigsty.cc/v1.5.1/pkg.tgz to /tmp/pkg.tgz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1075M  100 1075M    0     0  10.6M      0  0:01:40  0:01:40 --:--:-- 10.0M
[ OK ] repo = extract from /tmp/pkg.tgz
[ OK ] repo file = /etc/yum.repos.d/pigsty-local.repo

configure

使用标准的 demo 模板进行 配置过程

[vagrant@meta pigsty]$ ./configure -m demo
[ OK ] cache = download from internet
configure pigsty v1.5.1 begin
[ OK ] kernel = Linux
[ OK ] machine = x86_64
[ OK ] release = 7.8.2003 , perfect
[ OK ] sudo = vagrant ok
[ OK ] ssh = vagrant@127.0.0.1 ok
[WARN] Multiple IP address candidates found:
    (1) 10.0.2.15	    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic eth0
    (2) 10.10.10.10	    inet 10.10.10.10/24 brd 10.10.10.255 scope global noprefixroute eth1
[ OK ] primary_ip = 10.10.10.10 (from demo)
[ OK ] admin = vagrant@10.10.10.10 ok
[ OK ] mode = demo (manually set)
[ OK ] spec = mini (cpu = 2)
[ OK ] config = demo @ 10.10.10.10
[ OK ] cache = /tmp/pkg.tgz exists
[ OK ] repo = /www/pigsty ok
[ OK ] repo file = /etc/yum.repos.d/pigsty-local.repo
[ OK ] utils = install from local file repo
[ OK ] ansible = ansible 2.9.27
configure pigsty done. Use 'make install' to proceed

install

使用 make install 在本机上完成安装,这实际上是执行了 infra.yml 剧本

make install
[vagrant@meta pigsty]$ make install
./infra.yml

PLAY [Node Identity] *********************************************************************************

TASK [Overwrite node_cluster] ************************************************************************
ok: [10.10.10.10]

TASK [Overwrite nodename] ****************************************************************************
ok: [10.10.10.10]

TASK [debug] *****************************************************************************************
ok: [10.10.10.10] => {
    "msg": "ins=pg-meta-1 cls=pg-meta"
}

PLAY [Infra Bootstrap] *******************************************************************************

TASK [environ : Create pigsty resource dirs on /etc/pigsty] ******************************************
changed: [10.10.10.10] => (item=/etc/pigsty)
changed: [10.10.10.10] => (item=/etc/pigsty/playbooks)
changed: [10.10.10.10] => (item=/etc/pigsty/dashboards)
changed: [10.10.10.10] => (item=/etc/pigsty/datasources)

TASK [environ : Create patronictl resource] **********************************************************
changed: [10.10.10.10]

TASK [environ : Get current username] ****************************************************************
ok: [10.10.10.10]

TASK [environ : Create admin user ssh key pair if not exists] ****************************************
ok: [10.10.10.10]

TASK [environ : Write default user credential to pgpass] *********************************************
changed: [10.10.10.10] => (item=*:*:*:replicator:DBUser.Replicator)
changed: [10.10.10.10] => (item=*:*:*:dbuser_monitor:DBUser.Monitor)
changed: [10.10.10.10] => (item=*:*:*:dbuser_dba:DBUser.DBA)

TASK [environ : Write default meta service to pg_service] ********************************************
changed: [10.10.10.10]

TASK [environ : Write servers.json to home dir] ******************************************************
changed: [10.10.10.10]

TASK [Set environment for admin user] ****************************************************************
changed: [10.10.10.10]

TASK [Enable environment for admin user] *************************************************************
changed: [10.10.10.10]

TASK [Create local repo directory] *******************************************************************
ok: [10.10.10.10]

TASK [Backup & remove existing repos] ****************************************************************
changed: [10.10.10.10]

TASK [Add required upstream repos] *******************************************************************
[WARNING]: Using a variable for a task's 'args' is unsafe in some situations (see
https://docs.ansible.com/ansible/devel/reference_appendices/faq.html#argsplat-unsafe)
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Base', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/os/$basearch/', u'http://mirror.centos.org/centos/$releasever/os/$basearch/'], u'name': u'base'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Updates', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/', u'http://mirror.centos.org/centos/$releasever/updates/$basearch/'], u'name': u'updates'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Extras', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/', u'http://mirror.centos.org/centos/$releasever/extras/$basearch/'], u'name': u'extras'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS $releasever - epel', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch', u'http://mirrors.aliyun.com/epel/$releasever/$basearch', u'http://download.fedoraproject.org/pub/epel/$releasever/$basearch'], u'name': u'epel'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'enabled': True, u'description': u'Grafana', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm', u'https://packages.grafana.com/oss/rpm'], u'name': u'grafana'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'Prometheus and exporters', u'baseurl': u'https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearch', u'name': u'prometheus'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'PostgreSQL common RPMs for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'http://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/common/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg-common'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'PostgreSQL 14 for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/14/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg14'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'TimescaleDB for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://packagecloud.io/timescale/timescaledb/el/7/$basearch'], u'name': u'timescaledb'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/', u'name': u'centos-sclo'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo rh', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/', u'name': u'centos-sclo-rh'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'nginx', u'baseurl': u'http://nginx.org/packages/centos/$releasever/$basearch/', u'description': u'Nginx Official Yum Repo'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'harbottle', u'baseurl': u'https://download.copr.fedorainfracloud.org/results/harbottle/main/epel-$releasever-$basearch/', u'description': u'Copr repo for main owned by harbottle'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'pg_probackup', u'baseurl': u'https://repo.postgrespro.ru/pg_probackup-forks/rpm/latest/centos-$releasever-$basearch', u'description': u'PG_PROBACKUP Centos packages for PostgresPro Standard and Enterprise - $basearch'})
changed: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'docker-ce', u'baseurl': [u'https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable', u'https://download.docker.com/linux/centos/$releasever/$basearch/stable'], u'description': u'Docker CE Stable - $basearch'})

TASK [Check repo pkgs cache exists] ******************************************************************
ok: [10.10.10.10]

TASK [Set fact whether repo_exists] ******************************************************************
ok: [10.10.10.10]

TASK [Move upstream repo to backup] ******************************************************************
changed: [10.10.10.10]

TASK [Add local file system repos] *******************************************************************
changed: [10.10.10.10]

TASK [repo : Remake yum cache if not exists] *********************************************************
changed: [10.10.10.10]

TASK [Install repo bootstrap packages] ***************************************************************
changed: [10.10.10.10]

TASK [Render repo nginx server files] ****************************************************************
changed: [10.10.10.10] => (item={u'dest': u'/etc/nginx/nginx.conf', u'src': u'nginx.conf.j2'})
changed: [10.10.10.10] => (item={u'dest': u'/etc/nginx/conf.d/default.conf', u'src': u'default.conf.j2'})
changed: [10.10.10.10] => (item={u'dest': u'/www/index.html', u'src': u'index.html.j2'})
changed: [10.10.10.10] => (item={u'dest': u'/www/pigsty.repo', u'src': u'local.repo.j2'})

TASK [Disable selinux for repo server] ***************************************************************
[WARNING]: SELinux state temporarily changed from 'enforcing' to 'permissive'. State change will take
effect next reboot.
changed: [10.10.10.10]

TASK [Launch repo nginx server] **********************************************************************
changed: [10.10.10.10]

TASK [Waits repo server online] **********************************************************************
ok: [10.10.10.10]

TASK [Download repo packages] ************************************************************************
skipping: [10.10.10.10] => (item=epel-release nginx wget yum-utils yum createrepo sshpass zip unzip)
skipping: [10.10.10.10] => (item=ntp chrony uuid lz4 bzip2 nc pv jq vim-enhanced make patch bash lsof wget git tuned perf ftp lrzsz rsync)
skipping: [10.10.10.10] => (item=numactl grubby sysstat dstat iotop bind-utils net-tools tcpdump socat ipvsadm telnet ca-certificates keepalived)
skipping: [10.10.10.10] => (item=readline zlib openssl openssh-clients libyaml libxml2 libxslt libevent perl perl-devel perl-ExtUtils*)
skipping: [10.10.10.10] => (item=readline-devel zlib-devel uuid-devel libuuid-devel libxml2-devel libxslt-devel openssl-devel libicu-devel)
skipping: [10.10.10.10] => (item=grafana prometheus2 pushgateway alertmanager mtail consul consul_exporter consul-template etcd dnsmasq)
skipping: [10.10.10.10] => (item=node_exporter nginx_exporter blackbox_exporter redis_exporter)
skipping: [10.10.10.10] => (item=ansible python python-pip python-psycopg2)
skipping: [10.10.10.10] => (item=python3 python3-psycopg2 python36-requests python3-etcd python3-consul python36-urllib3 python36-idna python36-pyOpenSSL python36-cryptography)
skipping: [10.10.10.10] => (item=patroni patroni-consul patroni-etcd pgbouncer pg_cli pgbadger pg_activity tail_n_mail)
skipping: [10.10.10.10] => (item=pgcenter boxinfo check_postgres emaj pgbconsole pg_bloat_check pgquarrel barman barman-cli pgloader pgFormatter pitrery pspg pgxnclient PyGreSQL)
skipping: [10.10.10.10] => (item=postgresql14* postgis32_14* citus_14* pglogical_14* timescaledb-2-postgresql-14 pg_repack_14 wal2json_14)
skipping: [10.10.10.10] => (item=pg_qualstats_14 pg_stat_kcache_14 pg_stat_monitor_14 pg_top_14 pg_track_settings_14 pg_wait_sampling_14 pg_probackup-std-14)
skipping: [10.10.10.10] => (item=pg_statement_rollback_14 system_stats_14 plproxy_14 plsh_14 pldebugger_14 plpgsql_check_14 pgmemcache_14)
skipping: [10.10.10.10] => (item=mysql_fdw_14 ogr_fdw_14 tds_fdw_14 sqlite_fdw_14 firebird_fdw_14 hdfs_fdw_14 mongo_fdw_14 osm_fdw_14 pgbouncer_fdw_14)
skipping: [10.10.10.10] => (item=hypopg_14 geoip_14 rum_14 hll_14 ip4r_14 prefix_14 pguri_14 tdigest_14 topn_14 periods_14)
skipping: [10.10.10.10] => (item=bgw_replstatus_14 count_distinct_14 credcheck_14 ddlx_14 extra_window_functions_14 logerrors_14 mysqlcompat_14 orafce_14)
skipping: [10.10.10.10] => (item=repmgr_14 pg_auth_mon_14 pg_auto_failover_14 pg_background_14 pg_bulkload_14 pg_catcheck_14 pg_comparator_14)
skipping: [10.10.10.10] => (item=pg_cron_14 pg_fkpart_14 pg_jobmon_14 pg_partman_14 pg_permissions_14 pg_prioritize_14 pgagent_14)
skipping: [10.10.10.10] => (item=pgaudit16_14 pgauditlogtofile_14 pgcryptokey_14 pgexportdoc_14 pgfincore_14 pgimportdoc_14 powa_14 pgmp_14 pgq_14)
skipping: [10.10.10.10] => (item=pgquarrel-0.7.0-1 pgsql_tweaks_14 pgtap_14 pgtt_14 postgresql-unit_14 postgresql_anonymizer_14 postgresql_faker_14)
skipping: [10.10.10.10] => (item=safeupdate_14 semver_14 set_user_14 sslutils_14 table_version_14)
skipping: [10.10.10.10] => (item=clang coreutils diffutils rpm-build rpm-devel rpmlint rpmdevtools bison flex)
skipping: [10.10.10.10] => (item=docker-ce docker-compose kubelet kubectl kubeadm kubernetes-cni helm)

TASK [repo : Download web url packages] **************************************************************
skipping: [10.10.10.10] => (item=https://github.com/Vonng/loki-rpm/releases/download/v2.5.0/loki-2.5.0.x86_64.rpm)
skipping: [10.10.10.10] => (item=https://github.com/Vonng/loki-rpm/releases/download/v2.5.0/promtail-2.5.0.x86_64.rpm)
skipping: [10.10.10.10] => (item=https://github.com/Vonng/pg_exporter/releases/download/v0.5.0/pg_exporter-0.5.0.x86_64.rpm)
skipping: [10.10.10.10] => (item=https://github.com/cybertec-postgresql/vip-manager/releases/download/v1.0.2/vip-manager-1.0.2-1.x86_64.rpm)
skipping: [10.10.10.10] => (item=https://github.com/Vonng/haproxy-rpm/releases/download/v2.5.7/haproxy-2.5.7-1.el7.x86_64.rpm)
skipping: [10.10.10.10] => (item=https://github.com/Vonng/pigsty-pkg/releases/download/misc/redis-6.2.7-1.el7.remi.x86_64.rpm)
skipping: [10.10.10.10] => (item=https://github.com/dalibo/pev2/releases/download/v0.24.0/pev2.tar.gz)
skipping: [10.10.10.10] => (item=https://github.com/Vonng/pigsty-pkg/releases/download/misc/polysh-0.4-1.noarch.rpm)

TASK [Download repo pkg dependencies] ****************************************************************
skipping: [10.10.10.10] => (item=epel-release nginx wget yum-utils yum createrepo sshpass zip unzip)
skipping: [10.10.10.10] => (item=ntp chrony uuid lz4 bzip2 nc pv jq vim-enhanced make patch bash lsof wget git tuned perf ftp lrzsz rsync)
skipping: [10.10.10.10] => (item=numactl grubby sysstat dstat iotop bind-utils net-tools tcpdump socat ipvsadm telnet ca-certificates keepalived)
skipping: [10.10.10.10] => (item=readline zlib openssl openssh-clients libyaml libxml2 libxslt libevent perl perl-devel perl-ExtUtils*)
skipping: [10.10.10.10] => (item=readline-devel zlib-devel uuid-devel libuuid-devel libxml2-devel libxslt-devel openssl-devel libicu-devel)
skipping: [10.10.10.10] => (item=grafana prometheus2 pushgateway alertmanager mtail consul consul_exporter consul-template etcd dnsmasq)
skipping: [10.10.10.10] => (item=node_exporter nginx_exporter blackbox_exporter redis_exporter)
skipping: [10.10.10.10] => (item=ansible python python-pip python-psycopg2)
skipping: [10.10.10.10] => (item=python3 python3-psycopg2 python36-requests python3-etcd python3-consul python36-urllib3 python36-idna python36-pyOpenSSL python36-cryptography)
skipping: [10.10.10.10] => (item=patroni patroni-consul patroni-etcd pgbouncer pg_cli pgbadger pg_activity tail_n_mail)
skipping: [10.10.10.10] => (item=pgcenter boxinfo check_postgres emaj pgbconsole pg_bloat_check pgquarrel barman barman-cli pgloader pgFormatter pitrery pspg pgxnclient PyGreSQL)
skipping: [10.10.10.10] => (item=postgresql14* postgis32_14* citus_14* pglogical_14* timescaledb-2-postgresql-14 pg_repack_14 wal2json_14)
skipping: [10.10.10.10] => (item=pg_qualstats_14 pg_stat_kcache_14 pg_stat_monitor_14 pg_top_14 pg_track_settings_14 pg_wait_sampling_14 pg_probackup-std-14)
skipping: [10.10.10.10] => (item=pg_statement_rollback_14 system_stats_14 plproxy_14 plsh_14 pldebugger_14 plpgsql_check_14 pgmemcache_14)
skipping: [10.10.10.10] => (item=mysql_fdw_14 ogr_fdw_14 tds_fdw_14 sqlite_fdw_14 firebird_fdw_14 hdfs_fdw_14 mongo_fdw_14 osm_fdw_14 pgbouncer_fdw_14)
skipping: [10.10.10.10] => (item=hypopg_14 geoip_14 rum_14 hll_14 ip4r_14 prefix_14 pguri_14 tdigest_14 topn_14 periods_14)
skipping: [10.10.10.10] => (item=bgw_replstatus_14 count_distinct_14 credcheck_14 ddlx_14 extra_window_functions_14 logerrors_14 mysqlcompat_14 orafce_14)
skipping: [10.10.10.10] => (item=repmgr_14 pg_auth_mon_14 pg_auto_failover_14 pg_background_14 pg_bulkload_14 pg_catcheck_14 pg_comparator_14)
skipping: [10.10.10.10] => (item=pg_cron_14 pg_fkpart_14 pg_jobmon_14 pg_partman_14 pg_permissions_14 pg_prioritize_14 pgagent_14)
skipping: [10.10.10.10] => (item=pgaudit16_14 pgauditlogtofile_14 pgcryptokey_14 pgexportdoc_14 pgfincore_14 pgimportdoc_14 powa_14 pgmp_14 pgq_14)
skipping: [10.10.10.10] => (item=pgquarrel-0.7.0-1 pgsql_tweaks_14 pgtap_14 pgtt_14 postgresql-unit_14 postgresql_anonymizer_14 postgresql_faker_14)
skipping: [10.10.10.10] => (item=safeupdate_14 semver_14 set_user_14 sslutils_14 table_version_14)
skipping: [10.10.10.10] => (item=clang coreutils diffutils rpm-build rpm-devel rpmlint rpmdevtools bison flex)
skipping: [10.10.10.10] => (item=docker-ce docker-compose kubelet kubectl kubeadm kubernetes-cni helm)

TASK [Create local repo] *****************************************************************************
skipping: [10.10.10.10]

PLAY [Meta Node Init] ********************************************************************************

TASK [Set hostname from nodename] ********************************************************************
changed: [10.10.10.10]

TASK [node : Fetch hostname from server] *************************************************************
skipping: [10.10.10.10]

TASK [node : Exchange hostname among servers] ********************************************************
skipping: [10.10.10.10]

TASK [node : Write static dns records to /etc/hosts] *************************************************
changed: [10.10.10.10] => (item=10.10.10.10 meta pigsty p.pigsty g.pigsty a.pigsty c.pigsty l.pigsty)
changed: [10.10.10.10] => (item=10.10.10.10 api.pigsty adm.pigsty cli.pigsty ddl.pigsty lab.pigsty git.pigsty sss.pigsty)

TASK [node : Write extra static dns records to /etc/hosts] *******************************************

TASK [node : Get old nameservers] ********************************************************************
changed: [10.10.10.10]

TASK [node : Write tmp resolv file] ******************************************************************
changed: [10.10.10.10]

TASK [node : Write resolv options] *******************************************************************
changed: [10.10.10.10] => (item=options single-request-reopen timeout:1 rotate)
changed: [10.10.10.10] => (item=domain service.consul)

TASK [node : Write additional nameservers] ***********************************************************
changed: [10.10.10.10] => (item=10.10.10.10)

TASK [node : Append existing nameservers] ************************************************************
changed: [10.10.10.10] => (item=10.0.2.3)

TASK [node : Swap resolv.conf] ***********************************************************************
changed: [10.10.10.10]

TASK [node : Node configure disable firewall] ********************************************************
ok: [10.10.10.10]

TASK [node : Node disable selinux by default] ********************************************************
[WARNING]: SELinux state change will take effect next reboot
ok: [10.10.10.10]

TASK [node : Backup existing repos] ******************************************************************
changed: [10.10.10.10]

TASK [node : Install upstream repo] ******************************************************************
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Base', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/os/$basearch/', u'http://mirror.centos.org/centos/$releasever/os/$basearch/'], u'name': u'base'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Updates', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/', u'http://mirror.centos.org/centos/$releasever/updates/$basearch/'], u'name': u'updates'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Extras', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/', u'http://mirror.centos.org/centos/$releasever/extras/$basearch/'], u'name': u'extras'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS $releasever - epel', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch', u'http://mirrors.aliyun.com/epel/$releasever/$basearch', u'http://download.fedoraproject.org/pub/epel/$releasever/$basearch'], u'name': u'epel'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'enabled': True, u'description': u'Grafana', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm', u'https://packages.grafana.com/oss/rpm'], u'name': u'grafana'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'Prometheus and exporters', u'baseurl': u'https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearch', u'name': u'prometheus'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'PostgreSQL common RPMs for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'http://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/common/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg-common'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'PostgreSQL 14 for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/14/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg14'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'TimescaleDB for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://packagecloud.io/timescale/timescaledb/el/7/$basearch'], u'name': u'timescaledb'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/', u'name': u'centos-sclo'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo rh', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/', u'name': u'centos-sclo-rh'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'nginx', u'baseurl': u'http://nginx.org/packages/centos/$releasever/$basearch/', u'description': u'Nginx Official Yum Repo'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'harbottle', u'baseurl': u'https://download.copr.fedorainfracloud.org/results/harbottle/main/epel-$releasever-$basearch/', u'description': u'Copr repo for main owned by harbottle'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'pg_probackup', u'baseurl': u'https://repo.postgrespro.ru/pg_probackup-forks/rpm/latest/centos-$releasever-$basearch', u'description': u'PG_PROBACKUP Centos packages for PostgresPro Standard and Enterprise - $basearch'})
skipping: [10.10.10.10] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'docker-ce', u'baseurl': [u'https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable', u'https://download.docker.com/linux/centos/$releasever/$basearch/stable'], u'description': u'Docker CE Stable - $basearch'})

TASK [node : Install local repo] *********************************************************************
changed: [10.10.10.10] => (item=http://pigsty/pigsty.repo)

TASK [Install node basic packages] *******************************************************************
skipping: [10.10.10.10] => (item=[])

TASK [Install node extra packages] *******************************************************************

TASK [node : Install meta specific packages] *********************************************************
skipping: [10.10.10.10] => (item=[])

TASK [Install node basic packages] *******************************************************************
changed: [10.10.10.10] => (item=[u'wget,sshpass,ntp,chrony,tuned,uuid,lz4,make,patch,bash,lsof,wget,unzip,git,ftp,vim-minimal,ca-certificates', u'numactl,grubby,sysstat,dstat,iotop,bind-utils,net-tools,tcpdump,socat,ipvsadm,telnet,tuned,nc,pv,jq,perf', u'readline,zlib,openssl,openssl-libs,openssh-clients,python3,python36-requests,node_exporter,consul,etcd,promtail'])

TASK [Install node extra packages] *******************************************************************

TASK [node : Install meta specific packages] *********************************************************
changed: [10.10.10.10] => (item=[u'grafana,prometheus2,alertmanager,loki,nginx_exporter,blackbox_exporter,pushgateway,redis,postgresql14', u'nginx,ansible,pgbadger,python-psycopg2,dnsmasq,coreutils,diffutils,polysh,docker-ce,docker-compose'])

TASK [Install pip3 packages on meta node] ************************************************************
changed: [10.10.10.10]

TASK [node : Node configure disable numa] ************************************************************
skipping: [10.10.10.10]

TASK [node : Node configure disable swap] ************************************************************
skipping: [10.10.10.10]

TASK [node : Node configure unmount swap] ************************************************************
skipping: [10.10.10.10] => (item=swap)
skipping: [10.10.10.10] => (item=none)

TASK [node : Node setup static network] **************************************************************
changed: [10.10.10.10]

TASK [node : Node configure disable firewall] ********************************************************
changed: [10.10.10.10]

TASK [node : Node configure disk prefetch] ***********************************************************
skipping: [10.10.10.10]

TASK [node : Enable linux kernel modules] ************************************************************
changed: [10.10.10.10] => (item=softdog)
changed: [10.10.10.10] => (item=br_netfilter)
changed: [10.10.10.10] => (item=ip_vs)
changed: [10.10.10.10] => (item=ip_vs_rr)
ok: [10.10.10.10] => (item=ip_vs_rr)
changed: [10.10.10.10] => (item=ip_vs_wrr)
changed: [10.10.10.10] => (item=ip_vs_sh)

TASK [node : Enable kernel module on reboot] *********************************************************
changed: [10.10.10.10]

TASK [node : Get config parameter page count] ********************************************************
changed: [10.10.10.10]

TASK [node : Get config parameter page size] *********************************************************
changed: [10.10.10.10]

TASK [node : Tune shmmax and shmall via mem] *********************************************************
skipping: [10.10.10.10]

TASK [node : Create tuned profiles] ******************************************************************
changed: [10.10.10.10] => (item=oltp)
changed: [10.10.10.10] => (item=olap)
changed: [10.10.10.10] => (item=crit)
changed: [10.10.10.10] => (item=tiny)

TASK [node : Render tuned profiles] ******************************************************************
changed: [10.10.10.10] => (item=oltp)
changed: [10.10.10.10] => (item=olap)
changed: [10.10.10.10] => (item=crit)
changed: [10.10.10.10] => (item=tiny)

TASK [node : Active tuned profile] *******************************************************************
changed: [10.10.10.10]

TASK [node : Change additional sysctl params] ********************************************************

TASK [node : Copy default user bash profile] *********************************************************
changed: [10.10.10.10]

TASK [Setup node default pam ulimits] ****************************************************************
changed: [10.10.10.10]

TASK [Create node data dir if exists] ****************************************************************
changed: [10.10.10.10]

TASK [node : Create os user group admin] *************************************************************
changed: [10.10.10.10]

TASK [node : Create os user admin] *******************************************************************
changed: [10.10.10.10]

TASK [node : Grant admin group nopass sudo] **********************************************************
changed: [10.10.10.10]

TASK [node : Add no host checking to ssh config] *****************************************************
changed: [10.10.10.10]

TASK [node : Add admin ssh no host checking] *********************************************************
ok: [10.10.10.10]

TASK [node : Fetch all admin public keys] ************************************************************
changed: [10.10.10.10]

TASK [node : Exchange all admin ssh keys] ************************************************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPzzw6XqahkKgDyQunmjTQEfs5+28oPrhW02REQBlhsw58dlTJWnfQEQFB4BTGznT5Xd4wcqp4nNNbiznWikwgD0rhYMFdxmFClyYXCDllSkzpQqFIbDlt+/9MmzSfAA64n0goffgJC1MbiZXBsrSsteNq96qGkDZpaQXp5PIeeoLiVkwI5GICGHIoKj4vnPUjzgLnRo0hr9K+bJ8os972AcbzxEh/dlMs71PRbIvPD46lxWy6zdINk1fd8XBdMmuoynVRuehUsOd72m1umLCK9fXWAilU1oSRT25y5SLQqQZ+dhHyxKL+wuu03vLHWrDGo/+0ocYEqH261JgQInF5 ansible-generated on pg-meta-1', u'10.10.10.10'])

TASK [node : Install public keys] ********************************************************************
changed: [10.10.10.10] => (item=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7IMAMNavYtWwzAJajKqwdn3ar5BhvcwCnBTxxEkXhGlCO2vfgosSAQMEflfgvkiI5nM1HIFQ8KINlx1XLO7SdL5KdInG5LIJjAFh0pujS4kNCT9a5IGvSq1BrzGqhbEcwWYdju1ZPYBcJm/MG+JD0dYCh8vfrYB/cYMD0SOmNkQ== vagrant@pigsty.com)

TASK [node : Install current public key] *************************************************************
ok: [10.10.10.10]

TASK [Setup default node timezone] *******************************************************************
changed: [10.10.10.10]

TASK [node : Install ntp package] ********************************************************************
ok: [10.10.10.10]

TASK [node : Install chrony package] *****************************************************************
skipping: [10.10.10.10]

TASK [node : Copy the ntp.conf file] *****************************************************************
changed: [10.10.10.10]

TASK [node : Copy the chrony.conf template] **********************************************************
changed: [10.10.10.10]

TASK [node : Launch ntpd service] ********************************************************************
changed: [10.10.10.10]

TASK [node : Launch chronyd service] *****************************************************************
skipping: [10.10.10.10]

TASK [node : Append /etc/crontab] ********************************************************************
skipping: [10.10.10.10] => (item=00 01 * * * postgres /pg/bin/pg-backup 2>>/pg/log/backup.log)
skipping: [10.10.10.10] => (item=* * * * * postgres /usr/pgsql/bin/pgbench meta -nv -T10 -c2 2>>/pg/log/bench.log)

TASK [node : Overwrite /etc/crontab] *****************************************************************
changed: [10.10.10.10]

TASK [Install docker and docker-compose] *************************************************************
ok: [10.10.10.10] => (item=docker-ce)
ok: [10.10.10.10] => (item=docker-compose)

TASK [docker : Get current admin user] ***************************************************************
changed: [10.10.10.10]

TASK [Add admin user to docker group] ****************************************************************
changed: [10.10.10.10] => (item=vagrant)
changed: [10.10.10.10] => (item=dba)

TASK [Make sure /etc/docker exists] ******************************************************************
changed: [10.10.10.10]

TASK [Overwrite /etc/docker/daemon.json] *************************************************************
changed: [10.10.10.10]

TASK [Launch docker service unit] ********************************************************************
changed: [10.10.10.10]

TASK [Check docker image cache exists] ***************************************************************
ok: [10.10.10.10]

TASK [Load docker image cache if exists] *************************************************************
skipping: [10.10.10.10]

TASK [Check for existing consul] *********************************************************************
changed: [10.10.10.10]

TASK [consul : Consul exists flag fact set] **********************************************************
ok: [10.10.10.10]

TASK [Abort due to existing consul instance] *********************************************************
skipping: [10.10.10.10]

TASK [Clean existing consul instance] ****************************************************************
skipping: [10.10.10.10]

TASK [Stop any running consul instance] **************************************************************
changed: [10.10.10.10]

TASK [Make sure consul is installed] *****************************************************************
ok: [10.10.10.10]

TASK [Create consul dir] *****************************************************************************
changed: [10.10.10.10] => (item=/etc/consul.d)
changed: [10.10.10.10] => (item=/data/consul)

TASK [consul : Fetch hostname from server if no node name is given] **********************************
skipping: [10.10.10.10]

TASK [consul : Setup nodename according to hostname] *************************************************
skipping: [10.10.10.10]

TASK [Make sure consul hcl absent] *******************************************************************
ok: [10.10.10.10]

TASK [Render consul main conf /etc/consul.d/consul.json] *********************************************
changed: [10.10.10.10]

TASK [Render consul node meta /etc/consul.d/consul-meta.json] ****************************************
changed: [10.10.10.10]

TASK [Get consul bootstrap expect quroum] ************************************************************
ok: [10.10.10.10]

TASK [Render consul server /etc/consul.d/consul-server.json] *****************************************
changed: [10.10.10.10]

TASK [Render consul ui conf /etc/consul.d/consul-server.json] ****************************************
changed: [10.10.10.10]

TASK [Copy consul systemd service] *******************************************************************
changed: [10.10.10.10]

TASK [Launch consul server service] ******************************************************************
changed: [10.10.10.10]

TASK [Wait for consul server online] *****************************************************************
ok: [10.10.10.10]

TASK [Launch consul agent service] *******************************************************************
skipping: [10.10.10.10]

TASK [Wait for consul agent online] ******************************************************************
skipping: [10.10.10.10]

TASK [Check for existing etcd] ***********************************************************************
changed: [10.10.10.10]

TASK [etcd : Etcd exists flag fact set] **************************************************************
ok: [10.10.10.10]

TASK [Abort due to etcd exists] **********************************************************************
skipping: [10.10.10.10]

TASK [Clean existing etcd instance] ******************************************************************
skipping: [10.10.10.10]

TASK [Stop any running etcd instance] ****************************************************************
changed: [10.10.10.10]

TASK [Create etcd dir] *******************************************************************************
changed: [10.10.10.10] => (item=/etc/etcd)
changed: [10.10.10.10] => (item=/data/etcd)

TASK [etcd : Get dcs server key as dcs nodename] *****************************************************
ok: [10.10.10.10]

TASK [Copy etcd server service unit] *****************************************************************
changed: [10.10.10.10]

TASK [Copy /etc/etcd.d/etcd.conf] ********************************************************************
changed: [10.10.10.10]

TASK [Launch etcd server service] ********************************************************************
changed: [10.10.10.10]

TASK [Wait for etcd server online] *******************************************************************
ok: [10.10.10.10]

TASK [Write etcd endpoint env profile] ***************************************************************
changed: [10.10.10.10]

PLAY [Setup Infrastructure on meta nodes] ************************************************************

TASK [Create local ca directory] *********************************************************************
changed: [10.10.10.10]

TASK [Copy ca cert from local files] *****************************************************************
skipping: [10.10.10.10] => (item=ca.key)
skipping: [10.10.10.10] => (item=ca.crt)

TASK [Check ca key cert exists] **********************************************************************
ok: [10.10.10.10]

TASK [ca : Create self-signed CA key-cert] ***********************************************************
changed: [10.10.10.10]

TASK [nameserver : Make sure dnsmasq package installed] **********************************************
ok: [10.10.10.10]

TASK [nameserver : Copy dnsmasq /etc/dnsmasq.d/config] ***********************************************
changed: [10.10.10.10]

TASK [nameserver : Add dynamic dns records to meta] **************************************************
changed: [10.10.10.10] => (item=10.10.10.2  pg-meta)
changed: [10.10.10.10] => (item=10.10.10.3  pg-test)
changed: [10.10.10.10] => (item=10.10.10.10 pg-meta-1)
changed: [10.10.10.10] => (item=10.10.10.11 pg-test-1)
changed: [10.10.10.10] => (item=10.10.10.12 pg-test-2)
changed: [10.10.10.10] => (item=10.10.10.13 pg-test-3)

TASK [nameserver : Launch meta dnsmasq service] ******************************************************
skipping: [10.10.10.10]

TASK [nameserver : Wait for meta dnsmasq online] *****************************************************
skipping: [10.10.10.10]

TASK [Make sure nginx installed] *********************************************************************
ok: [10.10.10.10]

TASK [nginx : Create local html directory] ***********************************************************
ok: [10.10.10.10] => (item=/www)
changed: [10.10.10.10] => (item=/www/pev2)
changed: [10.10.10.10] => (item=/www/docs)
changed: [10.10.10.10] => (item=/www/logs)
changed: [10.10.10.10] => (item=/www/schema)
changed: [10.10.10.10] => (item=/www/report)

TASK [nginx : Copy pigsty logo file] *****************************************************************
changed: [10.10.10.10]

TASK [Render default nginx home page] ****************************************************************
changed: [10.10.10.10]

TASK [Create nginx haproxy config dir] ***************************************************************
changed: [10.10.10.10]

TASK [Copy nginx main config] ************************************************************************
changed: [10.10.10.10]

TASK [Copy nginx default config] *********************************************************************
changed: [10.10.10.10]

TASK [Copy nginx upstream conf] **********************************************************************
skipping: [10.10.10.10] => (item={u'domain': u'pigsty', u'endpoint': u'10.10.10.10:80', u'name': u'home'})
changed: [10.10.10.10] => (item={u'domain': u'g.pigsty', u'endpoint': u'10.10.10.10:3000', u'name': u'grafana'})
changed: [10.10.10.10] => (item={u'domain': u'l.pigsty', u'endpoint': u'10.10.10.10:3100', u'name': u'loki'})
changed: [10.10.10.10] => (item={u'domain': u'p.pigsty', u'endpoint': u'10.10.10.10:9090', u'name': u'prometheus'})
changed: [10.10.10.10] => (item={u'domain': u'a.pigsty', u'endpoint': u'10.10.10.10:9093', u'name': u'alertmanager'})
changed: [10.10.10.10] => (item={u'domain': u'c.pigsty', u'endpoint': u'127.0.0.1:8500', u'name': u'consul'})
changed: [10.10.10.10] => (item={u'domain': u'api.pigsty.cc', u'endpoint': u'127.0.0.1:8884', u'name': u'postgrest'})
changed: [10.10.10.10] => (item={u'domain': u'adm.pigsty.cc', u'endpoint': u'127.0.0.1:8885', u'name': u'pgadmin'})
changed: [10.10.10.10] => (item={u'domain': u'cli.pigsty.cc', u'endpoint': u'127.0.0.1:8886', u'name': u'pgweb'})
changed: [10.10.10.10] => (item={u'domain': u'ddl.pigsty.cc', u'endpoint': u'127.0.0.1:8887', u'name': u'bytebase'})
changed: [10.10.10.10] => (item={u'domain': u'lab.pigsty.cc', u'endpoint': u'127.0.0.1:8888', u'name': u'jupyter'})
changed: [10.10.10.10] => (item={u'domain': u'git.pigsty.cc', u'endpoint': u'127.0.0.1:8889', u'name': u'gitea'})
changed: [10.10.10.10] => (item={u'domain': u'sss.pigsty.cc', u'endpoint': u'127.0.0.1:9000', u'name': u'minio'})

TASK [nginx : Setup docs if exists] ******************************************************************
changed: [10.10.10.10]

TASK [nginx : Setup pev2 if exists] ******************************************************************
changed: [10.10.10.10]

TASK [Restart meta nginx service] ********************************************************************
changed: [10.10.10.10]

TASK [Wait for nginx service online] *****************************************************************
ok: [10.10.10.10]

TASK [Make sure nginx exporter installed] ************************************************************
ok: [10.10.10.10]

TASK [Config nginx_exporter options] *****************************************************************
changed: [10.10.10.10]

TASK [Restart nginx_exporter service] ****************************************************************
changed: [10.10.10.10]

TASK [Wait for nginx exporter online] ****************************************************************
ok: [10.10.10.10]

TASK [Install prometheus and alertmanager] ***********************************************************
ok: [10.10.10.10] => (item=prometheus2)
ok: [10.10.10.10] => (item=alertmanager)

TASK [Wipe out prometheus config dir] ****************************************************************
changed: [10.10.10.10]

TASK [Wipe out existing prometheus data] *************************************************************
ok: [10.10.10.10]

TASK [Create prometheus directories] *****************************************************************
changed: [10.10.10.10] => (item=/etc/prometheus)
changed: [10.10.10.10] => (item=/etc/prometheus/bin)
changed: [10.10.10.10] => (item=/etc/prometheus/rules)
changed: [10.10.10.10] => (item=/etc/prometheus/targets)
changed: [10.10.10.10] => (item=/etc/prometheus/targets/infra)
changed: [10.10.10.10] => (item=/etc/prometheus/targets/nodes)
changed: [10.10.10.10] => (item=/etc/prometheus/targets/pgsql)
changed: [10.10.10.10] => (item=/etc/prometheus/targets/redis)
changed: [10.10.10.10] => (item=/data/prometheus/data)

TASK [Copy prometheus bin scripts] *******************************************************************
changed: [10.10.10.10]

TASK [Copy prometheus rules] *************************************************************************
changed: [10.10.10.10]

TASK [Render prometheus config] **********************************************************************
changed: [10.10.10.10]

TASK [prometheus : Render altermanager config] *******************************************************
changed: [10.10.10.10]

TASK [Config /etc/prometheus opts] *******************************************************************
changed: [10.10.10.10]

TASK [Launch prometheus service] *********************************************************************
changed: [10.10.10.10]

TASK [Wait for prometheus online] ********************************************************************
ok: [10.10.10.10]

TASK [prometheus : Launch alertmanager service] ******************************************************
changed: [10.10.10.10]

TASK [prometheus : Wait for alertmanager online] *****************************************************
ok: [10.10.10.10]

TASK [Reload prometheus service] *********************************************************************
changed: [10.10.10.10]

TASK [Make sure grafana installed] *******************************************************************
ok: [10.10.10.10]

TASK [Stop grafana service] **************************************************************************
changed: [10.10.10.10]

TASK [Check grafana plugin cache exists] *************************************************************
ok: [10.10.10.10]

TASK [Provision grafana plugins via cache if exists] *************************************************
changed: [10.10.10.10]

TASK [Download grafana plugins via internet] *********************************************************
skipping: [10.10.10.10] => (item=marcusolsson-csv-datasource)
skipping: [10.10.10.10] => (item=marcusolsson-json-datasource)
skipping: [10.10.10.10] => (item=marcusolsson-treemap-panel)

TASK [Download grafana plugins via git] **************************************************************
skipping: [10.10.10.10] => (item=https://github.com/Vonng/vonng-echarts-panel)

TASK [Remove grafana provisioning config] ************************************************************
ok: [10.10.10.10] => (item=/etc/grafana/provisioning/dashboards/pigsty.yml)
ok: [10.10.10.10] => (item=/etc/grafana/provisioning/datasources/pigsty.yml)

TASK [Remake grafana resource dir] *******************************************************************
changed: [10.10.10.10] => (item=/etc/grafana/)
changed: [10.10.10.10] => (item=/etc/dashboards)
changed: [10.10.10.10] => (item=/etc/grafana/provisioning/dashboards)
changed: [10.10.10.10] => (item=/etc/grafana/provisioning/datasources)

TASK [Copy grafana systemd service] ******************************************************************
changed: [10.10.10.10]

TASK [Templating /etc/grafana/grafana.ini] ***********************************************************
changed: [10.10.10.10]

TASK [grafana : Templating datasources provisioning config] ******************************************
changed: [10.10.10.10]

TASK [grafana : Templating dashboards provisioning config] *******************************************
changed: [10.10.10.10]

TASK [Customize grafana logo icon] *******************************************************************
changed: [10.10.10.10]

TASK [Launch grafana service] ************************************************************************
changed: [10.10.10.10]

TASK [Wait for grafana online] ***********************************************************************
ok: [10.10.10.10]

TASK [Sync grafana home and core dashboards] *********************************************************
changed: [10.10.10.10]

TASK [Provisioning grafana with grafana.py] **********************************************************
changed: [10.10.10.10]

TASK [Install loki via yum] **************************************************************************
ok: [10.10.10.10]

TASK [Cleanup loki] **********************************************************************************
skipping: [10.10.10.10]

TASK [Make sure loki data & rule dir exists] *********************************************************
changed: [10.10.10.10]

TASK [Copy loki systemd service] *********************************************************************
ok: [10.10.10.10]

TASK [Templating loki.yml main config] ***************************************************************
changed: [10.10.10.10]

TASK [Render loki default config] ********************************************************************
changed: [10.10.10.10]

TASK [loki : Launch Loki] ****************************************************************************
changed: [10.10.10.10]

TASK [Wait for loki online] **************************************************************************
ok: [10.10.10.10]

TASK [infra_register : Register nginx service to consul] *********************************************
changed: [10.10.10.10]

TASK [infra_register : Register nginx-exporter service to consul] ************************************
changed: [10.10.10.10]

TASK [infra_register : Register prometheus service to consul] ****************************************
changed: [10.10.10.10]

TASK [infra_register : Register alertmanager service to consul] **************************************
changed: [10.10.10.10]

TASK [infra_register : Register grafana service to consul] *******************************************
changed: [10.10.10.10]

TASK [infra_register : Register loki service to consul] **********************************************
changed: [10.10.10.10]

TASK [infra_register : Register dnsmasq service to consul] *******************************************
skipping: [10.10.10.10]

TASK [infra_register : Reload consul] ****************************************************************
changed: [10.10.10.10]

TASK [infra_register : Render infra file-sd targets targets for prometheus] **************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=10.10.10.10)

PLAY [Meta Node Monitor] *****************************************************************************

TASK [Add yum repo for node_exporter] ****************************************************************
skipping: [10.10.10.10]

TASK [Install node_exporter via yum] *****************************************************************
skipping: [10.10.10.10]

TASK [Install node_exporter via binary] **************************************************************
skipping: [10.10.10.10]

TASK [Config node_exporter systemd unit] *************************************************************
changed: [10.10.10.10]

TASK [Config default node_exporter options] **********************************************************
changed: [10.10.10.10]

TASK [Launch node_exporter systemd unit] *************************************************************
changed: [10.10.10.10]

TASK [Wait for node_exporter online] *****************************************************************
ok: [10.10.10.10]

TASK [Install promtail via yum] **********************************************************************
ok: [10.10.10.10]

TASK [Cleanup promtail positions] ********************************************************************
skipping: [10.10.10.10]

TASK [Copy promtail systemd service] *****************************************************************
ok: [10.10.10.10]

TASK [promtail : Fetch hostname from server if no node name is given] ********************************
skipping: [10.10.10.10]

TASK [promtail : Setup nodename according to hostname] ***********************************************
skipping: [10.10.10.10]

TASK [Render promtail main config] *******************************************************************
changed: [10.10.10.10]

TASK [Render promtail default config] ****************************************************************
changed: [10.10.10.10]

TASK [Launch promtail] *******************************************************************************
changed: [10.10.10.10]

TASK [Wait for promtail online] **********************************************************************
ok: [10.10.10.10]

TASK [node_register : Fetch hostname from server if no node name is given] ***************************
skipping: [10.10.10.10]

TASK [node_register : Setup nodename according to hostname] ******************************************
skipping: [10.10.10.10]

TASK [node_register : Register docker service to consul] *********************************************
changed: [10.10.10.10]

TASK [node_register : Register node-exporter service to consul] **************************************
changed: [10.10.10.10]

TASK [node_register : Register promtail service to consul] *******************************************
changed: [10.10.10.10]

TASK [node_register : Reload consul] *****************************************************************
changed: [10.10.10.10]

TASK [node_register : Fetch hostname from server if no node name is given] ***************************
skipping: [10.10.10.10]

TASK [node_register : Setup nodename according to hostname] ******************************************
skipping: [10.10.10.10]

TASK [node_register : Register node exporter as prometheus target] ***********************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=10.10.10.10)

PLAY [Meta PGSQL Init] *******************************************************************************

TASK [Create os group postgres] **********************************************************************
changed: [10.10.10.10]

TASK [postgres : Make sure dcs group exists] *********************************************************
ok: [10.10.10.10] => (item=consul)
ok: [10.10.10.10] => (item=etcd)

TASK [Create dbsu postgres] **************************************************************************
changed: [10.10.10.10]

TASK [postgres : Grant dbsu nopass sudo] *************************************************************
skipping: [10.10.10.10]

TASK [postgres : Grant dbsu all sudo] ****************************************************************
skipping: [10.10.10.10]

TASK [postgres : Grant dbsu limited sudo] ************************************************************
changed: [10.10.10.10]

TASK [postgres : Config watchdog onwer to dbsu] ******************************************************
changed: [10.10.10.10]

TASK [postgres : Add dbsu ssh no host checking] ******************************************************
changed: [10.10.10.10]

TASK [postgres : Fetch dbsu public keys] *************************************************************
changed: [10.10.10.10]

TASK [postgres : Exchange dbsu ssh keys] *************************************************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDTnoEpVwp2k88FlqB16plsoYpvXVv9BIPajheil8DGMsgir/IHYT9pQhhLrKfStV9zZiLu96oCjTqHQdzKt04gbEcT/kD4kdnVrpbA/Z7CcoDlahHDEcRZoVPTL0Ba+TNKc9UslDm3JxgxLFr2KDigC0AoG8xzGGdHSxsPdlDz59/n+7WWJRuE5jicPIwVy70KNaSdlYfYnqlnWHhAwNXROsLoKiTBoYsxIRuuQfWEZsUmxDhwJ3ESUUgEE+F5B7R2/wh/UBcBZRfDpc4OzNkZKLiQz3UJ+P6FkQJD5Uy1ZfoPdF8cVFNoPSBpN3KJ0jXiEe6cNBbstsGkCmd6DxFD ansible-generated on pg-meta-1', u'10.10.10.10'])

TASK [postgres : Install offical pgdg yum repo] ******************************************************
skipping: [10.10.10.10] => (item=postgresql${pg_version}*)
skipping: [10.10.10.10] => (item=postgis32_${pg_version}*)
skipping: [10.10.10.10] => (item=citus_${pg_version}*)
skipping: [10.10.10.10] => (item=timescaledb-2-postgresql-${pg_version})
skipping: [10.10.10.10] => (item=pgbouncer pg_exporter pgbadger pg_activity node_exporter consul haproxy vip-manager)
skipping: [10.10.10.10] => (item=patroni patroni-consul patroni-etcd python3 python3-psycopg2 python36-requests python3-etcd)
skipping: [10.10.10.10] => (item=python3-consul python36-urllib3 python36-idna python36-pyOpenSSL python36-cryptography)

TASK [postgres : Install pg packages] ****************************************************************
changed: [10.10.10.10] => (item=[u'postgresql14*', u'postgis32_14*', u'citus_14*', u'timescaledb-2-postgresql-14', u'pgbouncer,pg_exporter,pgbadger,pg_activity,node_exporter,consul,haproxy,vip-manager', u'patroni,patroni-consul,patroni-etcd,python3,python3-psycopg2,python36-requests,python3-etcd', u'python3-consul,python36-urllib3,python36-idna,python36-pyOpenSSL,python36-cryptography'])

TASK [postgres : Install pg extensions] **************************************************************
changed: [10.10.10.10] => (item=[u'pg_repack_14,pg_qualstats_14,pg_stat_kcache_14,pg_stat_monitor_14,wal2json_14'])

TASK [postgres : Link /usr/pgsql to current version] *************************************************
changed: [10.10.10.10]

TASK [postgres : Add pg bin dir to profile path] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Fix directory ownership] ************************************************************
ok: [10.10.10.10]

TASK [Remove default postgres service] ***************************************************************
changed: [10.10.10.10]

TASK [postgres : Check necessary variables exists] ***************************************************
ok: [10.10.10.10] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [postgres : Fetch variables via pg_cluster] *****************************************************
ok: [10.10.10.10]

TASK [postgres : Set cluster basic facts for hosts] **************************************************
ok: [10.10.10.10]

TASK [postgres : Assert cluster primary singleton] ***************************************************
ok: [10.10.10.10] => {
    "changed": false,
    "msg": "All assertions passed"
}

TASK [postgres : Setup cluster primary ip address] ***************************************************
ok: [10.10.10.10]

TASK [postgres : Setup repl upstream for primary] ****************************************************
skipping: [10.10.10.10]

TASK [postgres : Setup repl upstream for replicas] ***************************************************
skipping: [10.10.10.10]

TASK [postgres : Debug print instance summary] *******************************************************
ok: [10.10.10.10] => {
    "msg": "cluster=pg-meta service=pg-meta-primary instance=pg-meta-1 replication=[primary:itself]->10.10.10.10"
}

TASK [Check for existing postgres instance] **********************************************************
changed: [10.10.10.10]

TASK [postgres : Set fact whether pg port is open] ***************************************************
ok: [10.10.10.10]

TASK [Abort due to existing postgres instance] *******************************************************
skipping: [10.10.10.10]

TASK [postgres : CLEAN RUNNING POSTGRESQL INSTANCE <DANGEROUSE!>] ************************************
skipping: [10.10.10.10]

TASK [Shutdown existing postgres service] ************************************************************
changed: [10.10.10.10]

TASK [postgres : Remove registerd consul service] ****************************************************
changed: [10.10.10.10]

TASK [Remove postgres metadata in consul] ************************************************************
changed: [10.10.10.10]

TASK [Remove postgres metadata in etcd] **************************************************************
skipping: [10.10.10.10]

TASK [Remove existing postgres data] *****************************************************************
ok: [10.10.10.10] => (item=/pg)
ok: [10.10.10.10] => (item=/data/postgres)
ok: [10.10.10.10] => (item=/data/backups/postgres)
changed: [10.10.10.10] => (item=/etc/pgbouncer)
changed: [10.10.10.10] => (item=/var/log/pgbouncer)
changed: [10.10.10.10] => (item=/var/run/pgbouncer)

TASK [postgres : Make sure main and backup dir exists] ***********************************************
ok: [10.10.10.10] => (item=/data)
changed: [10.10.10.10] => (item=/data/backups)

TASK [Create postgres directory structure] ***********************************************************
changed: [10.10.10.10] => (item=/data/postgres)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/bin)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/log)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/tmp)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/conf)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/data)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/meta)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/stat)
changed: [10.10.10.10] => (item=/data/postgres/pg-meta-14/change)
changed: [10.10.10.10] => (item=/data/backups/postgres/pg-meta-14/postgres)
changed: [10.10.10.10] => (item=/data/backups/postgres/pg-meta-14/arcwal)
changed: [10.10.10.10] => (item=/data/backups/postgres/pg-meta-14/backup)
changed: [10.10.10.10] => (item=/data/backups/postgres/pg-meta-14/remote)

TASK [postgres : Create pgbouncer directory structure] ***********************************************
changed: [10.10.10.10] => (item=/etc/pgbouncer)
changed: [10.10.10.10] => (item=/var/log/pgbouncer)
changed: [10.10.10.10] => (item=/var/run/pgbouncer)

TASK [postgres : Create links from pgbkup to pgroot] *************************************************
changed: [10.10.10.10] => (item=arcwal)
changed: [10.10.10.10] => (item=backup)
changed: [10.10.10.10] => (item=remote)

TASK [postgres : Create links from current cluster] **************************************************
changed: [10.10.10.10]

TASK [postgres : Create dummy placeholder file] ******************************************************
changed: [10.10.10.10]

TASK [Copy postgres scripts to /pg/bin/] *************************************************************
changed: [10.10.10.10]

TASK [postgres : Copy alias profile to /etc/profile.d] ***********************************************
changed: [10.10.10.10]

TASK [Copy psqlrc to postgres home] ******************************************************************
changed: [10.10.10.10]

TASK [postgres : Get config parameter page count] ****************************************************
changed: [10.10.10.10]

TASK [postgres : Get config parameter page size] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Tune shared buffer and work mem] ****************************************************
ok: [10.10.10.10]

TASK [postgres : Hanlde small size mem occasion] *****************************************************
ok: [10.10.10.10]

TASK [Calculate postgres mem params] *****************************************************************
skipping: [10.10.10.10]

TASK [postgres : create patroni config dir] **********************************************************
changed: [10.10.10.10]

TASK [postgres : use predefined patroni template] ****************************************************
skipping: [10.10.10.10]

TASK [postgres : Render default /pg/conf/patroni.yml] ************************************************
changed: [10.10.10.10]

TASK [postgres : Link /pg/conf/patroni to /pg/bin/] **************************************************
changed: [10.10.10.10]

TASK [postgres : Link /pg/bin/patroni.yml to /etc/patroni/] ******************************************
changed: [10.10.10.10]

TASK [postgres : Config patroni watchdog support] ****************************************************
ok: [10.10.10.10]

TASK [postgres : Copy patroni systemd service file] **************************************************
changed: [10.10.10.10]

TASK [postgres : create patroni systemd drop-in dir] *************************************************
changed: [10.10.10.10]

TASK [Copy postgres systemd service file] ************************************************************
changed: [10.10.10.10]

TASK [postgres : Drop-In systemd config for patroni] *************************************************
changed: [10.10.10.10]

TASK [postgres : Launch patroni on primary instance] *************************************************
changed: [10.10.10.10]

TASK [postgres : Wait for patroni primary online] ****************************************************
ok: [10.10.10.10]

TASK [Wait for postgres primary online] **************************************************************
ok: [10.10.10.10]

TASK [Check primary postgres service ready] **********************************************************
[WARNING]: Module remote_tmp /var/lib/pgsql/.ansible/tmp did not exist and was created with a mode of
0700, this may cause issues when running as another user. To avoid this, create the remote_tmp dir
with the correct permissions manually
changed: [10.10.10.10]

TASK [postgres : Check replication connectivity on primary] ******************************************
changed: [10.10.10.10]

TASK [postgres : Render init roles sql] **************************************************************
changed: [10.10.10.10]

TASK [postgres : Render init template sql] ***********************************************************
changed: [10.10.10.10]

TASK [postgres : Render default pg-init scripts] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Execute initialization scripts] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Check primary instance ready] *******************************************************
changed: [10.10.10.10]

TASK [postgres : Add dbsu password to pgpass if exists] **********************************************
skipping: [10.10.10.10]

TASK [postgres : Add system user to pgpass] **********************************************************
changed: [10.10.10.10] => (item={u'username': u'replicator', u'password': u'DBUser.Replicator'})
changed: [10.10.10.10] => (item={u'username': u'dbuser_monitor', u'password': u'DBUser.Monitor'})
changed: [10.10.10.10] => (item={u'username': u'dbuser_dba', u'password': u'DBUser.DBA'})

TASK [postgres : Check replication connectivity to primary] ******************************************
skipping: [10.10.10.10]

TASK [postgres : Launch patroni on replica instances] ************************************************
skipping: [10.10.10.10]

TASK [postgres : Wait for patroni replica online] ****************************************************
skipping: [10.10.10.10]

TASK [Wait for postgres replica online] **************************************************************
skipping: [10.10.10.10]

TASK [Check replica postgres service ready] **********************************************************
skipping: [10.10.10.10]

TASK [postgres : Render hba rules] *******************************************************************
changed: [10.10.10.10]

TASK [postgres : Reload hba rules] *******************************************************************
changed: [10.10.10.10]

TASK [postgres : Reload patroni] *********************************************************************
changed: [10.10.10.10]

TASK [postgres : Pause patroni] **********************************************************************
skipping: [10.10.10.10]

TASK [postgres : Stop patroni on replica instance] ***************************************************
skipping: [10.10.10.10]

TASK [postgres : Stop patroni on primary instance] ***************************************************
skipping: [10.10.10.10]

TASK [Launch raw postgres on primary] ****************************************************************
skipping: [10.10.10.10]

TASK [Launch raw postgres on replicas] ***************************************************************
skipping: [10.10.10.10]

TASK [Wait for postgres online] **********************************************************************
skipping: [10.10.10.10]

TASK [postgres : Check pgbouncer is installed] *******************************************************
changed: [10.10.10.10]

TASK [postgres : Stop existing pgbouncer service] ****************************************************
ok: [10.10.10.10]

TASK [postgres : Remove existing pgbouncer dirs] *****************************************************
changed: [10.10.10.10] => (item=/etc/pgbouncer)
changed: [10.10.10.10] => (item=/var/log/pgbouncer)
changed: [10.10.10.10] => (item=/var/run/pgbouncer)

TASK [Recreate dirs with owner postgres] *************************************************************
changed: [10.10.10.10] => (item=/etc/pgbouncer)
changed: [10.10.10.10] => (item=/var/log/pgbouncer)
changed: [10.10.10.10] => (item=/var/run/pgbouncer)

TASK [postgres : Copy /etc/pgbouncer/pgbouncer.ini] **************************************************
changed: [10.10.10.10]

TASK [postgres : Copy /etc/pgbouncer/pgb_hba.conf] ***************************************************
changed: [10.10.10.10]

TASK [postgres : Touch userlist and database list] ***************************************************
changed: [10.10.10.10] => (item=database.txt)
changed: [10.10.10.10] => (item=userlist.txt)

TASK [postgres : Add default users to pgbouncer] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Init pgbouncer business database list] **********************************************
changed: [10.10.10.10] => (item={u'comment': u'pigsty meta database', u'schemas': [u'pigsty'], u'extensions': [{u'name': u'adminpack', u'schema': u'pg_catalog'}, {u'name': u'postgis', u'schema': u'public'}, {u'name': u'timescaledb'}], u'baseline': u'cmdb.sql', u'name': u'meta'})
changed: [10.10.10.10] => (item={u'owner': u'dbuser_grafana', u'comment': u'grafana primary database', u'name': u'grafana', u'revokeconn': True})
changed: [10.10.10.10] => (item={u'owner': u'dbuser_bytebase', u'comment': u'bytebase primary database', u'name': u'bytebase', u'revokeconn': True})
changed: [10.10.10.10] => (item={u'owner': u'dbuser_kong', u'comment': u'kong the api gateway database', u'name': u'kong', u'revokeconn': True})
changed: [10.10.10.10] => (item={u'owner': u'dbuser_gitea', u'comment': u'gitea meta database', u'name': u'gitea', u'revokeconn': True})

TASK [postgres : Init pgbouncer business user list] **************************************************
changed: [10.10.10.10] => (item={u'comment': u'pigsty cmdb admin user', u'roles': [u'dbrole_admin'], u'password': u'DBUser.Meta', u'name': u'dbuser_meta', u'pgbouncer': True})
changed: [10.10.10.10] => (item={u'comment': u'read-only viewer for meta database', u'roles': [u'dbrole_readonly'], u'password': u'DBUser.Viewer', u'name': u'dbuser_view', u'pgbouncer': True})
changed: [10.10.10.10] => (item={u'comment': u'admin user for grafana database', u'roles': [u'dbrole_admin'], u'password': u'DBUser.Grafana', u'name': u'dbuser_grafana', u'pgbouncer': True})
changed: [10.10.10.10] => (item={u'comment': u'admin user for bytebase database', u'roles': [u'dbrole_admin'], u'password': u'DBUser.Bytebase', u'name': u'dbuser_bytebase', u'pgbouncer': True})
changed: [10.10.10.10] => (item={u'comment': u'admin user for kong api gateway', u'roles': [u'dbrole_admin'], u'password': u'DBUser.Kong', u'name': u'dbuser_kong', u'pgbouncer': True})
changed: [10.10.10.10] => (item={u'comment': u'admin user for gitea service', u'roles': [u'dbrole_admin'], u'password': u'DBUser.Gitea', u'name': u'dbuser_gitea', u'pgbouncer': True})

TASK [postgres : Copy pgbouncer systemd service] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Launch pgbouncer pool service] ******************************************************
changed: [10.10.10.10]

TASK [postgres : Wait for pgbouncer service online] **************************************************
ok: [10.10.10.10]

TASK [postgres : Check pgbouncer service is ready] ***************************************************
changed: [10.10.10.10]

TASK [postgres : include_tasks] **********************************************************************
included: /home/vagrant/pigsty/roles/postgres/tasks/createuser.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createuser.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createuser.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createuser.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createuser.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createuser.yml for 10.10.10.10

TASK [postgres : Render user dbuser_meta creation sql] ***********************************************
changed: [10.10.10.10]

TASK [postgres : Execute user dbuser_meta creation sql on primary] ***********************************
changed: [10.10.10.10]

TASK [postgres : Add business user to pgbouncer] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Render user dbuser_view creation sql] ***********************************************
changed: [10.10.10.10]

TASK [postgres : Execute user dbuser_view creation sql on primary] ***********************************
changed: [10.10.10.10]

TASK [postgres : Add business user to pgbouncer] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Render user dbuser_grafana creation sql] ********************************************
changed: [10.10.10.10]

TASK [postgres : Execute user dbuser_grafana creation sql on primary] ********************************
changed: [10.10.10.10]

TASK [postgres : Add business user to pgbouncer] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Render user dbuser_bytebase creation sql] *******************************************
changed: [10.10.10.10]

TASK [postgres : Execute user dbuser_bytebase creation sql on primary] *******************************
changed: [10.10.10.10]

TASK [postgres : Add business user to pgbouncer] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Render user dbuser_kong creation sql] ***********************************************
changed: [10.10.10.10]

TASK [postgres : Execute user dbuser_kong creation sql on primary] ***********************************
changed: [10.10.10.10]

TASK [postgres : Add business user to pgbouncer] *****************************************************
changed: [10.10.10.10]

TASK [postgres : Render user dbuser_gitea creation sql] **********************************************
changed: [10.10.10.10]

TASK [postgres : Execute user dbuser_gitea creation sql on primary] **********************************
changed: [10.10.10.10]

TASK [postgres : Add business user to pgbouncer] *****************************************************
changed: [10.10.10.10]

TASK [postgres : include_tasks] **********************************************************************
included: /home/vagrant/pigsty/roles/postgres/tasks/createdb.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createdb.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createdb.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createdb.yml for 10.10.10.10
included: /home/vagrant/pigsty/roles/postgres/tasks/createdb.yml for 10.10.10.10

TASK [postgres : debug] ******************************************************************************
ok: [10.10.10.10] => {
    "msg": {
        "baseline": "cmdb.sql",
        "comment": "pigsty meta database",
        "extensions": [
            {
                "name": "adminpack",
                "schema": "pg_catalog"
            },
            {
                "name": "postgis",
                "schema": "public"
            },
            {
                "name": "timescaledb"
            }
        ],
        "name": "meta",
        "schemas": [
            "pigsty"
        ]
    }
}

TASK [postgres : Render database meta creation sql] **************************************************
changed: [10.10.10.10]

TASK [postgres : Render database meta baseline sql] **************************************************
changed: [10.10.10.10]

TASK [postgres : Execute database meta creation command] *********************************************
changed: [10.10.10.10]

TASK [postgres : Execute database meta creation sql] *************************************************
changed: [10.10.10.10]

TASK [postgres : Execute database meta baseline sql] *************************************************
changed: [10.10.10.10]

TASK [postgres : Add biz database to pgbouncer] ******************************************************
changed: [10.10.10.10]

TASK [postgres : debug] ******************************************************************************
ok: [10.10.10.10] => {
    "msg": {
        "comment": "grafana primary database",
        "name": "grafana",
        "owner": "dbuser_grafana",
        "revokeconn": true
    }
}

TASK [postgres : Render database grafana creation sql] ***********************************************
changed: [10.10.10.10]

TASK [postgres : Render database grafana baseline sql] ***********************************************
skipping: [10.10.10.10]

TASK [postgres : Execute database grafana creation command] ******************************************
changed: [10.10.10.10]

TASK [postgres : Execute database grafana creation sql] **********************************************
changed: [10.10.10.10]

TASK [postgres : Execute database grafana baseline sql] **********************************************
skipping: [10.10.10.10]

TASK [postgres : Add biz database to pgbouncer] ******************************************************
changed: [10.10.10.10]

TASK [postgres : debug] ******************************************************************************
ok: [10.10.10.10] => {
    "msg": {
        "comment": "bytebase primary database",
        "name": "bytebase",
        "owner": "dbuser_bytebase",
        "revokeconn": true
    }
}

TASK [postgres : Render database bytebase creation sql] **********************************************
changed: [10.10.10.10]

TASK [postgres : Render database bytebase baseline sql] **********************************************
skipping: [10.10.10.10]

TASK [postgres : Execute database bytebase creation command] *****************************************
changed: [10.10.10.10]

TASK [postgres : Execute database bytebase creation sql] *********************************************
changed: [10.10.10.10]

TASK [postgres : Execute database bytebase baseline sql] *********************************************
skipping: [10.10.10.10]

TASK [postgres : Add biz database to pgbouncer] ******************************************************
changed: [10.10.10.10]

TASK [postgres : debug] ******************************************************************************
ok: [10.10.10.10] => {
    "msg": {
        "comment": "kong the api gateway database",
        "name": "kong",
        "owner": "dbuser_kong",
        "revokeconn": true
    }
}

TASK [postgres : Render database kong creation sql] **************************************************
changed: [10.10.10.10]

TASK [postgres : Render database kong baseline sql] **************************************************
skipping: [10.10.10.10]

TASK [postgres : Execute database kong creation command] *********************************************
changed: [10.10.10.10]

TASK [postgres : Execute database kong creation sql] *************************************************
changed: [10.10.10.10]

TASK [postgres : Execute database kong baseline sql] *************************************************
skipping: [10.10.10.10]

TASK [postgres : Add biz database to pgbouncer] ******************************************************
changed: [10.10.10.10]

TASK [postgres : debug] ******************************************************************************
ok: [10.10.10.10] => {
    "msg": {
        "comment": "gitea meta database",
        "name": "gitea",
        "owner": "dbuser_gitea",
        "revokeconn": true
    }
}

TASK [postgres : Render database gitea creation sql] *************************************************
changed: [10.10.10.10]

TASK [postgres : Render database gitea baseline sql] *************************************************
skipping: [10.10.10.10]

TASK [postgres : Execute database gitea creation command] ********************************************
changed: [10.10.10.10]

TASK [postgres : Execute database gitea creation sql] ************************************************
changed: [10.10.10.10]

TASK [postgres : Execute database gitea baseline sql] ************************************************
skipping: [10.10.10.10]

TASK [postgres : Add biz database to pgbouncer] ******************************************************
changed: [10.10.10.10]

TASK [postgres : Reload pgbouncer to add db and users] ***********************************************
changed: [10.10.10.10]

TASK [service : Make sure haproxy is installed] ******************************************************
ok: [10.10.10.10]

TASK [service : Create haproxy config directory] *****************************************************
ok: [10.10.10.10]

TASK [service : Create haproxy environment file] *****************************************************
changed: [10.10.10.10]

TASK [Copy haproxy systemd service file] *************************************************************
changed: [10.10.10.10]

TASK [service : Fetch postgres cluster memberships] **************************************************
ok: [10.10.10.10]

TASK [service : Templating /etc/haproxy/haproxy.cfg] *************************************************
changed: [10.10.10.10]

TASK [service : Reload Haproxy] **********************************************************************
changed: [10.10.10.10]

TASK [Launch haproxy load balancer service] **********************************************************
changed: [10.10.10.10]

TASK [service : Wait for haproxy load balancer online] ***********************************************
ok: [10.10.10.10]

TASK [service : Make sure vip-manager is installed] **************************************************
ok: [10.10.10.10]

TASK [Copy vip-manager systemd service file] *********************************************************
changed: [10.10.10.10]

TASK [service : create vip-manager systemd drop-in dir] **********************************************
changed: [10.10.10.10]

TASK [service : create vip-manager systemd drop-in file] *********************************************
changed: [10.10.10.10]

TASK [service : Templating /etc/default/vip-manager.yml] *********************************************
changed: [10.10.10.10]

TASK [service : Reload vip-manager config] ***********************************************************
changed: [10.10.10.10]

TASK [Add yum repo for pg_exporter] ******************************************************************
skipping: [10.10.10.10]

TASK [Install pg_exporter via yum] *******************************************************************
skipping: [10.10.10.10]

TASK [Install pg_exporter via binary] ****************************************************************
skipping: [10.10.10.10]

TASK [Copy default pg_exporter.yml config] ***********************************************************
changed: [10.10.10.10]

TASK [Config pg_exporter parameters] *****************************************************************
changed: [10.10.10.10]

TASK [Config pg_exporter systemd unit] ***************************************************************
changed: [10.10.10.10]

TASK [pg_exporter : Config pgbouncer_exporter parameters] ********************************************
changed: [10.10.10.10]

TASK [pg_exporter : Config pgbouncer_exporter systemd unit] ******************************************
changed: [10.10.10.10]

TASK [Launch pg_exporter systemd unit] ***************************************************************
changed: [10.10.10.10]

TASK [Wait for pg_exporter online] *******************************************************************
ok: [10.10.10.10]

TASK [pg_exporter : Launch pgbouncer_exporter systemd unit] ******************************************
changed: [10.10.10.10]

TASK [pg_exporter : Wait for pgbouncer_exporter online] **********************************************
ok: [10.10.10.10]

TASK [pg_register : Register postgres service to consul] *********************************************
changed: [10.10.10.10]

TASK [pg_register : Register patroni service to consul] **********************************************
changed: [10.10.10.10]

TASK [pg_register : Register pgbouncer service to consul] ********************************************
changed: [10.10.10.10]

TASK [pg_register : Register pg_exporter service to consul] ******************************************
changed: [10.10.10.10]

TASK [pg_register : Register pgbouncer_exporter service to consul] ***********************************
changed: [10.10.10.10]

TASK [pg_register : Register haproxy (exporter) service to consul] ***********************************
changed: [10.10.10.10]

TASK [pg_register : Register cluster service to consul] **********************************************
changed: [10.10.10.10] => (item={u'src_ip': u'*', u'check_url': u'/primary', u'src_port': 5433, u'name': u'primary', u'dst_port': u'pgbouncer', u'selector': u'[]'})
changed: [10.10.10.10] => (item={u'src_ip': u'*', u'check_url': u'/read-only', u'src_port': 5434, u'name': u'replica', u'selector_backup': u'[? pg_role == `primary` || pg_role == `offline` ]', u'dst_port': u'pgbouncer', u'selector': u'[]'})
changed: [10.10.10.10] => (item={u'haproxy': {u'default_server_options': u'inter 3s fastinter 1s downinter 5s rise 3 fall 3 on-marked-down shutdown-sessions slowstart 30s maxconn 3000 maxqueue 128 weight 100', u'balance': u'roundrobin', u'maxconn': 3000}, u'check_url': u'/primary', u'src_port': 5436, u'name': u'default', u'check_method': u'http', u'selector': u'[]', u'src_ip': u'*', u'dst_port': u'postgres', u'check_code': 200, u'check_port': u'patroni'})
changed: [10.10.10.10] => (item={u'src_ip': u'*', u'check_url': u'/replica', u'src_port': 5438, u'name': u'offline', u'selector_backup': u'[? pg_role == `replica` && !pg_offline_query]', u'dst_port': u'postgres', u'selector': u'[? pg_role == `offline` || pg_offline_query ]'})

TASK [pg_register : Reload consul to finish register] ************************************************
changed: [10.10.10.10]

TASK [pg_register : Register pgsql exporter as prometheus target] ************************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=10.10.10.10)

TASK [pg_register : Render datasource definition on meta node] ***************************************
changed: [10.10.10.10 -> meta] => (item={u'comment': u'pigsty meta database', u'schemas': [u'pigsty'], u'extensions': [{u'name': u'adminpack', u'schema': u'pg_catalog'}, {u'name': u'postgis', u'schema': u'public'}, {u'name': u'timescaledb'}], u'baseline': u'cmdb.sql', u'name': u'meta'})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_grafana', u'comment': u'grafana primary database', u'name': u'grafana', u'revokeconn': True})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_bytebase', u'comment': u'bytebase primary database', u'name': u'bytebase', u'revokeconn': True})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_kong', u'comment': u'kong the api gateway database', u'name': u'kong', u'revokeconn': True})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_gitea', u'comment': u'gitea meta database', u'name': u'gitea', u'revokeconn': True})

TASK [pg_register : Load grafana datasource on meta node] ********************************************
changed: [10.10.10.10 -> meta] => (item={u'comment': u'pigsty meta database', u'schemas': [u'pigsty'], u'extensions': [{u'name': u'adminpack', u'schema': u'pg_catalog'}, {u'name': u'postgis', u'schema': u'public'}, {u'name': u'timescaledb'}], u'baseline': u'cmdb.sql', u'name': u'meta'})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_grafana', u'comment': u'grafana primary database', u'name': u'grafana', u'revokeconn': True})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_bytebase', u'comment': u'bytebase primary database', u'name': u'bytebase', u'revokeconn': True})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_kong', u'comment': u'kong the api gateway database', u'name': u'kong', u'revokeconn': True})
changed: [10.10.10.10 -> meta] => (item={u'owner': u'dbuser_gitea', u'comment': u'gitea meta database', u'name': u'gitea', u'revokeconn': True})

TASK [pg_register : Create haproxy config dir resource dirs on /etc/pigsty] **************************
ok: [10.10.10.10 -> 10.10.10.10] => (item=10.10.10.10)

TASK [pg_register : Register haproxy upstream to nginx] **********************************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=10.10.10.10)

TASK [pg_register : Register haproxy url location to nginx] ******************************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=10.10.10.10)

TASK [pg_register : Reload nginx to finish haproxy register] *****************************************
changed: [10.10.10.10 -> 10.10.10.10] => (item=10.10.10.10)

PLAY RECAP *******************************************************************************************
10.10.10.10                : ok=351  changed=266  unreachable=0    failed=0    skipped=80   rescued=0    ignored=0

nodes(可选)

完成单机安装后,使用 nodes.yml 完成 node-1, node-2 , node-3 三个节点的初始化:

nodes.yml
[vagrant@meta pigsty]$ ./nodes.yml -l pg-test

PLAY [Node Identity] *********************************************************************************

TASK [Overwrite node_cluster] ************************************************************************
ok: [10.10.10.12]
ok: [10.10.10.11]
ok: [10.10.10.13]

TASK [Overwrite nodename] ****************************************************************************
ok: [10.10.10.11]
ok: [10.10.10.13]
ok: [10.10.10.12]

TASK [debug] *****************************************************************************************
ok: [10.10.10.11] => {
    "msg": "ins=pg-test-1 cls=pg-test"
}
ok: [10.10.10.13] => {
    "msg": "ins=pg-test-3 cls=pg-test"
}
ok: [10.10.10.12] => {
    "msg": "ins=pg-test-2 cls=pg-test"
}

PLAY [Node Init] *************************************************************************************

TASK [Set hostname from nodename] ********************************************************************
changed: [10.10.10.11]
changed: [10.10.10.12]
changed: [10.10.10.13]

TASK [node : Fetch hostname from server] *************************************************************
skipping: [10.10.10.11]
skipping: [10.10.10.13]
skipping: [10.10.10.12]

TASK [node : Exchange hostname among servers] ********************************************************
skipping: [10.10.10.11]
skipping: [10.10.10.13]
skipping: [10.10.10.12]

TASK [node : Write static dns records to /etc/hosts] *************************************************
changed: [10.10.10.13] => (item=10.10.10.10 meta pigsty p.pigsty g.pigsty a.pigsty c.pigsty l.pigsty)
changed: [10.10.10.12] => (item=10.10.10.10 meta pigsty p.pigsty g.pigsty a.pigsty c.pigsty l.pigsty)
changed: [10.10.10.11] => (item=10.10.10.10 meta pigsty p.pigsty g.pigsty a.pigsty c.pigsty l.pigsty)
changed: [10.10.10.12] => (item=10.10.10.10 api.pigsty adm.pigsty cli.pigsty ddl.pigsty lab.pigsty git.pigsty sss.pigsty)
changed: [10.10.10.11] => (item=10.10.10.10 api.pigsty adm.pigsty cli.pigsty ddl.pigsty lab.pigsty git.pigsty sss.pigsty)
changed: [10.10.10.13] => (item=10.10.10.10 api.pigsty adm.pigsty cli.pigsty ddl.pigsty lab.pigsty git.pigsty sss.pigsty)

TASK [node : Write extra static dns records to /etc/hosts] *******************************************

TASK [node : Get old nameservers] ********************************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Write tmp resolv file] ******************************************************************
changed: [10.10.10.11]
changed: [10.10.10.12]
changed: [10.10.10.13]

TASK [node : Write resolv options] *******************************************************************
changed: [10.10.10.13] => (item=options single-request-reopen timeout:1 rotate)
changed: [10.10.10.11] => (item=options single-request-reopen timeout:1 rotate)
changed: [10.10.10.12] => (item=options single-request-reopen timeout:1 rotate)
changed: [10.10.10.13] => (item=domain service.consul)
changed: [10.10.10.11] => (item=domain service.consul)
changed: [10.10.10.12] => (item=domain service.consul)

TASK [node : Write additional nameservers] ***********************************************************
changed: [10.10.10.13] => (item=10.10.10.10)
changed: [10.10.10.11] => (item=10.10.10.10)
changed: [10.10.10.12] => (item=10.10.10.10)

TASK [node : Append existing nameservers] ************************************************************
changed: [10.10.10.11] => (item=10.0.2.3)
changed: [10.10.10.13] => (item=10.0.2.3)
changed: [10.10.10.12] => (item=10.0.2.3)

TASK [node : Swap resolv.conf] ***********************************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Node configure disable firewall] ********************************************************
ok: [10.10.10.12]
ok: [10.10.10.11]
ok: [10.10.10.13]

TASK [node : Node disable selinux by default] ********************************************************
[WARNING]: SELinux state temporarily changed from 'enforcing' to 'permissive'. State change will take
effect next reboot.
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Backup existing repos] ******************************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Install upstream repo] ******************************************************************
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Base', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/os/$basearch/', u'http://mirror.centos.org/centos/$releasever/os/$basearch/'], u'name': u'base'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Updates', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/', u'http://mirror.centos.org/centos/$releasever/updates/$basearch/'], u'name': u'updates'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Extras', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/', u'http://mirror.centos.org/centos/$releasever/extras/$basearch/'], u'name': u'extras'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Base', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/os/$basearch/', u'http://mirror.centos.org/centos/$releasever/os/$basearch/'], u'name': u'base'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Updates', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/', u'http://mirror.centos.org/centos/$releasever/updates/$basearch/'], u'name': u'updates'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Extras', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/', u'http://mirror.centos.org/centos/$releasever/extras/$basearch/'], u'name': u'extras'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'CentOS $releasever - epel', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch', u'http://mirrors.aliyun.com/epel/$releasever/$basearch', u'http://download.fedoraproject.org/pub/epel/$releasever/$basearch'], u'name': u'epel'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'CentOS $releasever - epel', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch', u'http://mirrors.aliyun.com/epel/$releasever/$basearch', u'http://download.fedoraproject.org/pub/epel/$releasever/$basearch'], u'name': u'epel'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'enabled': True, u'description': u'Grafana', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm', u'https://packages.grafana.com/oss/rpm'], u'name': u'grafana'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'enabled': True, u'description': u'Grafana', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm', u'https://packages.grafana.com/oss/rpm'], u'name': u'grafana'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'Prometheus and exporters', u'baseurl': u'https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearch', u'name': u'prometheus'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'PostgreSQL common RPMs for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'http://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/common/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg-common'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'Prometheus and exporters', u'baseurl': u'https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearch', u'name': u'prometheus'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Base', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/os/$basearch/', u'http://mirror.centos.org/centos/$releasever/os/$basearch/'], u'name': u'base'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Updates', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/', u'http://mirror.centos.org/centos/$releasever/updates/$basearch/'], u'name': u'updates'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'PostgreSQL 14 for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/14/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg14'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - Extras', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/', u'http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/', u'http://mirror.centos.org/centos/$releasever/extras/$basearch/'], u'name': u'extras'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'PostgreSQL common RPMs for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'http://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/common/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg-common'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'TimescaleDB for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://packagecloud.io/timescale/timescaledb/el/7/$basearch'], u'name': u'timescaledb'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'CentOS $releasever - epel', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/$basearch', u'http://mirrors.aliyun.com/epel/$releasever/$basearch', u'http://download.fedoraproject.org/pub/epel/$releasever/$basearch'], u'name': u'epel'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/', u'name': u'centos-sclo'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'PostgreSQL 14 for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/14/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg14'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo rh', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/', u'name': u'centos-sclo-rh'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'enabled': True, u'description': u'Grafana', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/grafana/yum/rpm', u'https://packages.grafana.com/oss/rpm'], u'name': u'grafana'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'TimescaleDB for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://packagecloud.io/timescale/timescaledb/el/7/$basearch'], u'name': u'timescaledb'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'nginx', u'baseurl': u'http://nginx.org/packages/centos/$releasever/$basearch/', u'description': u'Nginx Official Yum Repo'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'harbottle', u'baseurl': u'https://download.copr.fedorainfracloud.org/results/harbottle/main/epel-$releasever-$basearch/', u'description': u'Copr repo for main owned by harbottle'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'Prometheus and exporters', u'baseurl': u'https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearch', u'name': u'prometheus'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/', u'name': u'centos-sclo'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'pg_probackup', u'baseurl': u'https://repo.postgrespro.ru/pg_probackup-forks/rpm/latest/centos-$releasever-$basearch', u'description': u'PG_PROBACKUP Centos packages for PostgresPro Standard and Enterprise - $basearch'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'PostgreSQL common RPMs for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'http://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/common/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/common/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg-common'})
skipping: [10.10.10.13] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'docker-ce', u'baseurl': [u'https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable', u'https://download.docker.com/linux/centos/$releasever/$basearch/stable'], u'description': u'Docker CE Stable - $basearch'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo rh', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/', u'name': u'centos-sclo-rh'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'PostgreSQL 14 for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://mirrors.tuna.tsinghua.edu.cn/postgresql/repos/yum/14/redhat/rhel-$releasever-$basearch', u'https://download.postgresql.org/pub/repos/yum/14/redhat/rhel-$releasever-$basearch'], u'name': u'pgdg14'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'nginx', u'baseurl': u'http://nginx.org/packages/centos/$releasever/$basearch/', u'description': u'Nginx Official Yum Repo'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'TimescaleDB for RHEL/CentOS $releasever - $basearch', u'baseurl': [u'https://packagecloud.io/timescale/timescaledb/el/7/$basearch'], u'name': u'timescaledb'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'harbottle', u'baseurl': u'https://download.copr.fedorainfracloud.org/results/harbottle/main/epel-$releasever-$basearch/', u'description': u'Copr repo for main owned by harbottle'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/sclo/', u'name': u'centos-sclo'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'pg_probackup', u'baseurl': u'https://repo.postgrespro.ru/pg_probackup-forks/rpm/latest/centos-$releasever-$basearch', u'description': u'PG_PROBACKUP Centos packages for PostgresPro Standard and Enterprise - $basearch'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'description': u'CentOS-$releasever - SCLo rh', u'baseurl': u'http://mirrors.aliyun.com/centos/$releasever/sclo/$basearch/rh/', u'name': u'centos-sclo-rh'})
skipping: [10.10.10.11] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'docker-ce', u'baseurl': [u'https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable', u'https://download.docker.com/linux/centos/$releasever/$basearch/stable'], u'description': u'Docker CE Stable - $basearch'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'nginx', u'baseurl': u'http://nginx.org/packages/centos/$releasever/$basearch/', u'description': u'Nginx Official Yum Repo'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'harbottle', u'baseurl': u'https://download.copr.fedorainfracloud.org/results/harbottle/main/epel-$releasever-$basearch/', u'description': u'Copr repo for main owned by harbottle'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'pg_probackup', u'baseurl': u'https://repo.postgrespro.ru/pg_probackup-forks/rpm/latest/centos-$releasever-$basearch', u'description': u'PG_PROBACKUP Centos packages for PostgresPro Standard and Enterprise - $basearch'})
skipping: [10.10.10.12] => (item={u'gpgcheck': False, u'skip_if_unavailable': True, u'name': u'docker-ce', u'baseurl': [u'https://mirrors.aliyun.com/docker-ce/linux/centos/$releasever/$basearch/stable', u'https://download.docker.com/linux/centos/$releasever/$basearch/stable'], u'description': u'Docker CE Stable - $basearch'})

TASK [node : Install local repo] *********************************************************************
changed: [10.10.10.12] => (item=http://pigsty/pigsty.repo)
changed: [10.10.10.11] => (item=http://pigsty/pigsty.repo)
changed: [10.10.10.13] => (item=http://pigsty/pigsty.repo)

TASK [Install node basic packages] *******************************************************************
skipping: [10.10.10.11] => (item=[])
skipping: [10.10.10.13] => (item=[])
skipping: [10.10.10.12] => (item=[])

TASK [Install node extra packages] *******************************************************************

TASK [node : Install meta specific packages] *********************************************************
skipping: [10.10.10.11] => (item=[])
skipping: [10.10.10.13] => (item=[])
skipping: [10.10.10.12] => (item=[])

TASK [Install node basic packages] *******************************************************************
changed: [10.10.10.11] => (item=[u'wget,sshpass,ntp,chrony,tuned,uuid,lz4,make,patch,bash,lsof,wget,unzip,git,ftp,vim-minimal,ca-certificates', u'numactl,grubby,sysstat,dstat,iotop,bind-utils,net-tools,tcpdump,socat,ipvsadm,telnet,tuned,nc,pv,jq,perf', u'readline,zlib,openssl,openssl-libs,openssh-clients,python3,python36-requests,node_exporter,consul,etcd,promtail'])
changed: [10.10.10.12] => (item=[u'wget,sshpass,ntp,chrony,tuned,uuid,lz4,make,patch,bash,lsof,wget,unzip,git,ftp,vim-minimal,ca-certificates', u'numactl,grubby,sysstat,dstat,iotop,bind-utils,net-tools,tcpdump,socat,ipvsadm,telnet,tuned,nc,pv,jq,perf', u'readline,zlib,openssl,openssl-libs,openssh-clients,python3,python36-requests,node_exporter,consul,etcd,promtail'])
changed: [10.10.10.13] => (item=[u'wget,sshpass,ntp,chrony,tuned,uuid,lz4,make,patch,bash,lsof,wget,unzip,git,ftp,vim-minimal,ca-certificates', u'numactl,grubby,sysstat,dstat,iotop,bind-utils,net-tools,tcpdump,socat,ipvsadm,telnet,tuned,nc,pv,jq,perf', u'readline,zlib,openssl,openssl-libs,openssh-clients,python3,python36-requests,node_exporter,consul,etcd,promtail'])

TASK [Install node extra packages] *******************************************************************

TASK [node : Install meta specific packages] *********************************************************
skipping: [10.10.10.11] => (item=[])
skipping: [10.10.10.13] => (item=[])
skipping: [10.10.10.12] => (item=[])

TASK [Install pip3 packages on meta node] ************************************************************
skipping: [10.10.10.11]
skipping: [10.10.10.13]
skipping: [10.10.10.12]

TASK [node : Node configure disable numa] ************************************************************
skipping: [10.10.10.11]
skipping: [10.10.10.13]
skipping: [10.10.10.12]

TASK [node : Node configure disable swap] ************************************************************
skipping: [10.10.10.11]
skipping: [10.10.10.13]
skipping: [10.10.10.12]

TASK [node : Node configure unmount swap] ************************************************************
skipping: [10.10.10.11] => (item=swap)
skipping: [10.10.10.11] => (item=none)
skipping: [10.10.10.13] => (item=swap)
skipping: [10.10.10.12] => (item=swap)
skipping: [10.10.10.12] => (item=none)
skipping: [10.10.10.13] => (item=none)

TASK [node : Node setup static network] **************************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Node configure disable firewall] ********************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Node configure disk prefetch] ***********************************************************
skipping: [10.10.10.11]
skipping: [10.10.10.13]
skipping: [10.10.10.12]

TASK [node : Enable linux kernel modules] ************************************************************
changed: [10.10.10.11] => (item=softdog)
changed: [10.10.10.12] => (item=softdog)
changed: [10.10.10.13] => (item=softdog)
changed: [10.10.10.11] => (item=br_netfilter)
changed: [10.10.10.13] => (item=br_netfilter)
changed: [10.10.10.12] => (item=br_netfilter)
changed: [10.10.10.11] => (item=ip_vs)
changed: [10.10.10.13] => (item=ip_vs)
changed: [10.10.10.12] => (item=ip_vs)
changed: [10.10.10.13] => (item=ip_vs_rr)
changed: [10.10.10.11] => (item=ip_vs_rr)
changed: [10.10.10.12] => (item=ip_vs_rr)
ok: [10.10.10.13] => (item=ip_vs_rr)
ok: [10.10.10.11] => (item=ip_vs_rr)
ok: [10.10.10.12] => (item=ip_vs_rr)
changed: [10.10.10.13] => (item=ip_vs_wrr)
changed: [10.10.10.11] => (item=ip_vs_wrr)
changed: [10.10.10.12] => (item=ip_vs_wrr)
changed: [10.10.10.13] => (item=ip_vs_sh)
changed: [10.10.10.11] => (item=ip_vs_sh)
changed: [10.10.10.12] => (item=ip_vs_sh)

TASK [node : Enable kernel module on reboot] *********************************************************
changed: [10.10.10.11]
changed: [10.10.10.12]
changed: [10.10.10.13]

TASK [node : Get config parameter page count] ********************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Get config parameter page size] *********************************************************
changed: [10.10.10.11]
changed: [10.10.10.12]
changed: [10.10.10.13]

TASK [node : Tune shmmax and shmall via mem] *********************************************************
skipping: [10.10.10.11]
skipping: [10.10.10.13]
skipping: [10.10.10.12]

TASK [node : Create tuned profiles] ******************************************************************
changed: [10.10.10.12] => (item=oltp)
changed: [10.10.10.13] => (item=oltp)
changed: [10.10.10.11] => (item=oltp)
changed: [10.10.10.12] => (item=olap)
changed: [10.10.10.13] => (item=olap)
changed: [10.10.10.11] => (item=olap)
changed: [10.10.10.13] => (item=crit)
changed: [10.10.10.11] => (item=crit)
changed: [10.10.10.12] => (item=crit)
changed: [10.10.10.13] => (item=tiny)
changed: [10.10.10.12] => (item=tiny)
changed: [10.10.10.11] => (item=tiny)

TASK [node : Render tuned profiles] ******************************************************************
changed: [10.10.10.11] => (item=oltp)
changed: [10.10.10.12] => (item=oltp)
changed: [10.10.10.13] => (item=oltp)
changed: [10.10.10.13] => (item=olap)
changed: [10.10.10.11] => (item=olap)
changed: [10.10.10.12] => (item=olap)
changed: [10.10.10.13] => (item=crit)
changed: [10.10.10.11] => (item=crit)
changed: [10.10.10.12] => (item=crit)
changed: [10.10.10.11] => (item=tiny)
changed: [10.10.10.12] => (item=tiny)
changed: [10.10.10.13] => (item=tiny)

TASK [node : Active tuned profile] *******************************************************************
changed: [10.10.10.12]
changed: [10.10.10.11]
changed: [10.10.10.13]

TASK [node : Change additional sysctl params] ********************************************************

TASK [node : Copy default user bash profile] *********************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [Setup node default pam ulimits] ****************************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [Create node data dir if exists] ****************************************************************
changed: [10.10.10.13]
changed: [10.10.10.12]
changed: [10.10.10.11]

TASK [node : Create os user group admin] *************************************************************
changed: [10.10.10.11]
changed: [10.10.10.12]
changed: [10.10.10.13]

TASK [node : Create os user admin] *******************************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Grant admin group nopass sudo] **********************************************************
changed: [10.10.10.11]
changed: [10.10.10.12]
changed: [10.10.10.13]

TASK [node : Add no host checking to ssh config] *****************************************************
changed: [10.10.10.12]
changed: [10.10.10.11]
changed: [10.10.10.13]

TASK [node : Add admin ssh no host checking] *********************************************************
ok: [10.10.10.11]
ok: [10.10.10.13]
ok: [10.10.10.12]

TASK [node : Fetch all admin public keys] ************************************************************
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.12]

TASK [node : Exchange all admin ssh keys] ************************************************************
changed: [10.10.10.11 -> 10.10.10.11] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkTNwjSFHA06ZaMe+iQz0TRfKAEFqFYpynY/j39VsZyF1D0Yb5tmjxKQTbPM8BTvaFf8WHb5cgdnCkXe3h5JcBPRDWyyKiK7N/reCLwFGilPB1jMlvAS5FoRSlafcyz4GgoYUoB8qQ9Q9QXYpOFnHVWzpbB1zUo57DZbcSgy4BLVl6bwnotJPfI/5vPrq8u/DFYMkmJC3d/XSQUTlkcf1PW4HkJGT/MS8KLkVAbmVIwyubXKxPqb+f2cKAUemXrdTlMms+kKwkqGAMoCejTFojqziLbh+QRUOCGsZfT74U5hHzFYuaRIV+F+HEpWulskY1M2eVrMyT0Ybu9v7RQL6T ansible-generated on pg-test-1', u'10.10.10.11'])
changed: [10.10.10.13 -> 10.10.10.11] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+JPJizHg8wpC71Qz930m7cOaALWXl/QfdCnccy19/xBVBkgLCe9zkUKtopNaRLzhiPKrchcq5bCHZhCqQH4tOwsM1QpXU8yWbILv3yOuxAtFD9Uvor7XJubb8COqWCnoE3zp3AOtD1I+PA5ukanyW4mQKsIOVZBkSxkN2J2BYhMiIQ27VpM9ecLXx0JKCwLWBx3Z0X96QL6D5pw13nMctZ81FvIopmzu6ZGcNm0tAKd/0lzKJA+jfAuxhxvfPhAO8QhH6s9OnYbfKTS1ttYhIN2qvurFeLjxebNMe01YujZb43vpErKm8F7X7Mr2IFqjwnXKuyB2aP12iNhJbGf4l ansible-generated on pg-test-3', u'10.10.10.11'])
changed: [10.10.10.12 -> 10.10.10.11] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDedbpfcV5RWRXfZEApOTRBkdOqZtlAKcsLAdoOg+cvnRrXeOWhUpuga6WF4CMTEafJKB1HZL4WUW7bzX4YMIFC4FO+LaqV+Q+hrEbCQ44R6MKfuLncPutVZjrp0zr0v5zfX78qR9Qd/Sg6bRNQGICBM2BrH0z7ws6WPbzFUrTeOo+O6+JeKY+Tei9OydyZF/GooYsbU4X/sFE6bfdhyxjeiHR7o8zBM3LsCiFv1L6+lJK83Z7pqHwS/rQonO0nQDKbmsFL5in5fT4Hsw11NbTCUUTO2W/6qzCzlK3WwJFMr5GNi0D9f85ES1kqJlHyacMHGhYkq/AXDNIkTai+MnVl ansible-generated on pg-test-2', u'10.10.10.11'])
changed: [10.10.10.11 -> 10.10.10.13] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkTNwjSFHA06ZaMe+iQz0TRfKAEFqFYpynY/j39VsZyF1D0Yb5tmjxKQTbPM8BTvaFf8WHb5cgdnCkXe3h5JcBPRDWyyKiK7N/reCLwFGilPB1jMlvAS5FoRSlafcyz4GgoYUoB8qQ9Q9QXYpOFnHVWzpbB1zUo57DZbcSgy4BLVl6bwnotJPfI/5vPrq8u/DFYMkmJC3d/XSQUTlkcf1PW4HkJGT/MS8KLkVAbmVIwyubXKxPqb+f2cKAUemXrdTlMms+kKwkqGAMoCejTFojqziLbh+QRUOCGsZfT74U5hHzFYuaRIV+F+HEpWulskY1M2eVrMyT0Ybu9v7RQL6T ansible-generated on pg-test-1', u'10.10.10.13'])
changed: [10.10.10.13 -> 10.10.10.13] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+JPJizHg8wpC71Qz930m7cOaALWXl/QfdCnccy19/xBVBkgLCe9zkUKtopNaRLzhiPKrchcq5bCHZhCqQH4tOwsM1QpXU8yWbILv3yOuxAtFD9Uvor7XJubb8COqWCnoE3zp3AOtD1I+PA5ukanyW4mQKsIOVZBkSxkN2J2BYhMiIQ27VpM9ecLXx0JKCwLWBx3Z0X96QL6D5pw13nMctZ81FvIopmzu6ZGcNm0tAKd/0lzKJA+jfAuxhxvfPhAO8QhH6s9OnYbfKTS1ttYhIN2qvurFeLjxebNMe01YujZb43vpErKm8F7X7Mr2IFqjwnXKuyB2aP12iNhJbGf4l ansible-generated on pg-test-3', u'10.10.10.13'])
changed: [10.10.10.12 -> 10.10.10.13] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDedbpfcV5RWRXfZEApOTRBkdOqZtlAKcsLAdoOg+cvnRrXeOWhUpuga6WF4CMTEafJKB1HZL4WUW7bzX4YMIFC4FO+LaqV+Q+hrEbCQ44R6MKfuLncPutVZjrp0zr0v5zfX78qR9Qd/Sg6bRNQGICBM2BrH0z7ws6WPbzFUrTeOo+O6+JeKY+Tei9OydyZF/GooYsbU4X/sFE6bfdhyxjeiHR7o8zBM3LsCiFv1L6+lJK83Z7pqHwS/rQonO0nQDKbmsFL5in5fT4Hsw11NbTCUUTO2W/6qzCzlK3WwJFMr5GNi0D9f85ES1kqJlHyacMHGhYkq/AXDNIkTai+MnVl ansible-generated on pg-test-2', u'10.10.10.13'])
changed: [10.10.10.11 -> 10.10.10.12] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDkTNwjSFHA06ZaMe+iQz0TRfKAEFqFYpynY/j39VsZyF1D0Yb5tmjxKQTbPM8BTvaFf8WHb5cgdnCkXe3h5JcBPRDWyyKiK7N/reCLwFGilPB1jMlvAS5FoRSlafcyz4GgoYUoB8qQ9Q9QXYpOFnHVWzpbB1zUo57DZbcSgy4BLVl6bwnotJPfI/5vPrq8u/DFYMkmJC3d/XSQUTlkcf1PW4HkJGT/MS8KLkVAbmVIwyubXKxPqb+f2cKAUemXrdTlMms+kKwkqGAMoCejTFojqziLbh+QRUOCGsZfT74U5hHzFYuaRIV+F+HEpWulskY1M2eVrMyT0Ybu9v7RQL6T ansible-generated on pg-test-1', u'10.10.10.12'])
changed: [10.10.10.13 -> 10.10.10.12] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC+JPJizHg8wpC71Qz930m7cOaALWXl/QfdCnccy19/xBVBkgLCe9zkUKtopNaRLzhiPKrchcq5bCHZhCqQH4tOwsM1QpXU8yWbILv3yOuxAtFD9Uvor7XJubb8COqWCnoE3zp3AOtD1I+PA5ukanyW4mQKsIOVZBkSxkN2J2BYhMiIQ27VpM9ecLXx0JKCwLWBx3Z0X96QL6D5pw13nMctZ81FvIopmzu6ZGcNm0tAKd/0lzKJA+jfAuxhxvfPhAO8QhH6s9OnYbfKTS1ttYhIN2qvurFeLjxebNMe01YujZb43vpErKm8F7X7Mr2IFqjwnXKuyB2aP12iNhJbGf4l ansible-generated on pg-test-3', u'10.10.10.12'])
changed: [10.10.10.12 -> 10.10.10.12] => (item=[u'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDedbpfcV5RWRXfZEApOTRBkdOqZtlAKcsLAdoOg+cvnRrXeOWhUpuga6WF4CMTEafJKB1HZL4WUW7bzX4YMIFC4FO+LaqV+Q+hrEbCQ44R6MKfuLncPutVZjrp0zr0v5zfX78qR9Qd/Sg6bRNQGICBM2BrH0z7ws6WPbzFUrTeOo+O6+JeKY+Tei9OydyZF/GooYsbU4X/sFE6bfdhyxjeiHR7o8zBM3LsCiFv1L6+lJK83Z7pqHwS/rQonO0nQDKbmsFL5in5fT4Hsw11NbTCUUTO2W/6qzCzlK3WwJFMr5GNi0D9f85ES1kqJlHyacMHGhYkq/AXDNIkTai+MnVl ansible-generated on pg-test-2', u'10.10.10.12'])

TASK [node : Install public keys] ********************************************************************
changed: [10.10.10.13] => (item=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7IMAMNavYtWwzAJajKqwdn3ar5BhvcwCnBTxxEkXhGlCO2vfgosSAQMEflfgvkiI5nM1HIFQ8KINlx1XLO7SdL5KdInG5LIJjAFh0pujS4kNCT9a5IGvSq1BrzGqhbEcwWYdju1ZPYBcJm/MG+JD0dYCh8vfrYB/cYMD0SOmNkQ== vagrant@pigsty.com)
changed: [10.10.10.11] => (item=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7IMAMNavYtWwzAJajKqwdn3ar5BhvcwCnBTxxEkXhGlCO2vfgosSAQMEflfgvkiI5nM1HIFQ8KINlx1XLO7SdL5KdInG5LIJjAFh0pujS4kNCT9a5IGvSq1BrzGqhbEcwWYdju1ZPYBcJm/MG+JD0dYCh8vfrYB/cYMD0SOmNkQ== vagrant@pigsty.com)
changed: [10.10.10.12] => (item=ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7IMAMNavYtWwzAJajKqwdn3ar5BhvcwCnBTxxEkXhGlCO2vfgosSAQMEflfgvkiI5nM1HIFQ8KINlx1XLO7SdL5KdInG5LIJjAFh0pujS4kNCT9a5IGvSq1BrzGqhbEcwWYdju1ZPYBcJm/MG+JD0dYCh8vfrYB/cYMD0SOmNkQ== vagrant@pigsty.com)

TASK [node : Install current public key] *************************************************************
ok: [10.10.10.11]
ok: [10.10.10.12]
ok: [10.10.10.13]

TASK [Setup default node timezone] *******************************************************************
changed: [10.10.10.12]
changed: [10.10.10.11]

pgsql(可选)

完成节点初始化后,使用 pgsql.yml 完成 pg-test 数据库集群的初始化:

nodes.yml

redis(可选)

您还可以使用 redis.yml 完成 Redis 数据库集群的初始化:

redis.yml

最后修改 2023-08-19: update docs to v2.3.0 (f172b10)