--- # On replica/edge servers, log the admin and service users into the master so # replication can authenticate. Included from install.yml only for non-master # server types. Each login is gated on `p4 login -s` so it only runs (and only # reports changed) when there is no valid ticket -- keeping the task idempotent. - name: "Check admin login status against P4MASTERPORT" ansible.builtin.command: >- /p4/common/bin/p4master_run {{ perforce_id }} p4 -p {{ target_server }}:{{ perforce_p4_port }} login -s become: true become_user: "{{ perforce_user }}" register: admin_login_status changed_when: false failed_when: false - name: "Log admin user into P4MASTERPORT" ansible.builtin.shell: >- /p4/common/bin/p4master_run {{ perforce_id }} p4 -p {{ target_server }}:{{ perforce_p4_port }} login -a < /p4/common/config/.p4passwd.p4_{{ perforce_id }}.admin become: true become_user: "{{ perforce_user }}" when: admin_login_status.rc != 0 changed_when: true failed_when: false - name: "Check service-user login status against P4MASTERPORT" ansible.builtin.shell: >- /p4/common/bin/p4master_run {{ perforce_id }} p4 -p {{ target_server }}:{{ perforce_p4_port }} -u {{ p4serviceuser }} login -s args: executable: /bin/bash become: true become_user: "{{ perforce_user }}" register: svc_login_status changed_when: false failed_when: false - name: "Log service user into P4MASTERPORT" ansible.builtin.shell: >- /p4/common/bin/p4master_run {{ perforce_id }} p4 -p {{ target_server }}:{{ perforce_p4_port }} login {{ p4serviceuser }} args: executable: /bin/bash become: true become_user: "{{ perforce_user }}" when: svc_login_status.rc != 0 changed_when: true failed_when: false