{% set cluster_join_enabled = salt['pillar.get']('pmg:cluster_join:enabled', False) %} {% set cluster_join_master_ip = salt['pillar.get']('pmg:cluster_join:master_ip', '') %} {% set cluster_join_fingerprint = salt['pillar.get']('pmg:cluster_join:fingerprint', '') %} {% set cluster_join_password = salt['pillar.get']('pmg:cluster_join:password', '') %} {% if cluster_join_enabled and cluster_join_master_ip and cluster_join_fingerprint %} pmg-cluster-join-passwordless-ssh-check: cmd.run: - name: ssh -o BatchMode=yes -o StrictHostKeyChecking=accept-new root@{{ cluster_join_master_ip }} "exit 0" - timeout: 20 {% if cluster_join_password %} pmg-cluster-join: cmd.run: - name: pmgcm join {{ cluster_join_master_ip }} --fingerprint {{ cluster_join_fingerprint }} - stdin: "{{ cluster_join_password }}" - timeout: 60 - require: - cmd: pmg-cluster-join-passwordless-ssh-check - unless: "pmgcm status 2>/dev/null | awk 'BEGIN { ok=1 } /no cluster defined/ { ok=0 } END { exit(ok ? 0 : 1) }'" {% else %} pmg-cluster-join-skipped-password: test.show_notification: - text: "Cluster join skipped: set pmg.cluster_join.password (PMG root@pam password on master) for non-interactive join." {% endif %} {% elif cluster_join_enabled %} pmg-cluster-join-skipped: test.show_notification: - text: "Cluster join skipped: set pmg.cluster_join.master_ip and pmg.cluster_join.fingerprint in pillar." {% endif %}