Cmnd_Alias P4_SYSTEMCTL = /bin/systemctl start p4d_{{ perforce_id }}, \
/bin/systemctl stop p4d_{{ perforce_id }}, \
/bin/systemctl restart p4d_{{ perforce_id }}, \
/bin/systemctl status p4d_{{ perforce_id }}, \
/bin/systemctl reload p4d_{{ perforce_id }}, \
/bin/systemctl is-active p4d_{{ perforce_id }}, \
/bin/systemctl is-enabled p4d_{{ perforce_id }}, \
/bin/systemctl show p4d_{{ perforce_id }}, \
/bin/systemctl start p4broker_{{ perforce_id }}, \
/bin/systemctl stop p4broker_{{ perforce_id }}, \
/bin/systemctl restart p4broker_{{ perforce_id }}, \
/bin/systemctl status p4broker_{{ perforce_id }}, \
/bin/systemctl reload p4broker_{{ perforce_id }}, \
/bin/systemctl is-active p4broker_{{ perforce_id }}, \
/bin/systemctl is-enabled p4broker_{{ perforce_id }}, \
/bin/systemctl show p4broker_{{ perforce_id }}
{{ perforce_user }} ALL=(root:root) NOPASSWD: P4_SYSTEMCTL, /usr/bin/lslocks, /usr/bin/lsof
| # | Change | User | Description | Committed | |
|---|---|---|---|---|---|
| #1 | 32703 | Russell C. Jackson (Rusty) |
Ubuntu 26.04 compatibility fixes + sudoers refactor + p4-cache-test host. - ansible.cfg: switch inventory/log paths from a stale absolute path to project-relative so the playbook runs from any clone location. - inventories/p4-sdp-install.yml + host_vars/p4-cache-test.yml: add new EC2 test host (ec2-3-135-203-141.us-east-2.compute.amazonaws.com) as a p4d_master with install_broker=false, copy_license=false, dummy_interface=false, and single-disk volumes on root. - roles/perforce-sdp-install/tasks/dependencies.yml: write the sysctl tuning block to /etc/sysctl.d/99-perforce.conf (create: yes) instead of /etc/sysctl.conf -- Ubuntu 26.04 no longer ships sysctl.conf. - roles/perforce-sdp-install/handlers/main.yml: restart_sysctl now runs 'sysctl --system' to pick up drop-in files. - roles/perforce-sdp-install/{tasks/install.yml,tasks/sudo.yml, templates/sudoers_perforce_user.j2}: replace the '/bin/systemctl * p4*' rule (rejected by modern sudo as a wildcard in command args) with a Cmnd_Alias enumerating start/stop/restart/status /reload/is-active/is-enabled/show for p4d_<id> and p4broker_<id>. Both task locations now use the same template and validate via 'visudo -cf' before placement. |