PLAY [all] *********************************************************************************************************************************************************************************************
TASK [Make sure we have power_user and power_pass] *****************************************************************************************************************************************************
skipping: [trial001.front.sepia.ceph.com]
TASK [test factory ipmi creds] *************************************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring
TASK [test power_user/power_pass creds] ****************************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring
TASK [if both fail, halt now] **************************************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com]: FAILED! => {"changed": false, "msg": "Failed as requested from task"}
vim tools/set-bmc-static.yml
%
ansible-playbook tools/set-bmc-static.yml --limit 'trial001*' -e only_lan_access=true
PLAY [all] *********************************************************************************************************************************************************************************************
TASK [Make sure we have power_user and power_pass] *****************************************************************************************************************************************************
skipping: [trial001.front.sepia.ceph.com]
TASK [debug] *******************************************************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com]: FAILED! => {"msg": "The conditional check '(power_status_factory.rc != 0) or (power_status_power.rc != 0)' failed. The error was: error while evaluating conditional ((power_status_factory.rc != 0) or (power_status_power.rc != 0)): 'dict object' has no attribute 'rc'. 'dict object' has no attribute 'rc'\n\nThe error appears to be in '/Users/david/src/ceph-cm-ansible/tools/set-bmc-static.yml': line 70, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - debug:\n ^ here\n"}
PLAY [all] *********************************************************************************************************************************************************************************************
TASK [Make sure we have power_user and power_pass] *****************************************************************************************************************************************************
skipping: [trial001.front.sepia.ceph.com]
TASK [if both fail, halt now] **************************************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com]: FAILED! => {"msg": "The conditional check '(power_status_factory.rc != 0) and (power_status_power.rc != 0)' failed. The error was: error while evaluating conditional ((power_status_factory.rc != 0) and (power_status_power.rc != 0)): 'power_status_factory' is undefined. 'power_status_factory' is undefined\n\nThe error appears to be in '/Users/david/src/ceph-cm-ansible/tools/set-bmc-static.yml': line 81, column 5, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n\n - name: if both fail, halt now\n ^ here\n"}
PLAY [all] *********************************************************************************************************************************************************************************************
TASK [Make sure we have power_user and power_pass] *****************************************************************************************************************************************************
skipping: [trial001.front.sepia.ceph.com]
TASK [Check if we have SSH access] *********************************************************************************************************************************************************************
skipping: [trial001.front.sepia.ceph.com]
TASK [Fake SSH failure if not desired] *****************************************************************************************************************************************************************
ok: [trial001.front.sepia.ceph.com]
TASK [Initial setup of username from localhost] ********************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring
TASK [Initial setup of permissions from localhost] *****************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring
TASK [Initial setup of password from localhost] ********************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring
TASK [Enable user] *************************************************************************************************************************************************************************************
fatal: [trial001.front.sepia.ceph.com -> localhost]: FAILED! => {"changed": false, "module_stderr": "sudo: a password is required\n", "module_stdout": "", "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error", "rc": 1}
...ignoring
Dan Mick [Mon, 1 Jun 2026 22:51:04 +0000 (15:51 -0700)]
roles/users/tasks/filter_users.yml: gut and replace
The old logic with jinja templates was just not robust anymore;
too easy to get a string value instead of an object floating around.
Modern ansible has filters to do this sort of thing better. I
expect this to be compatible with existing usage of the various user
variables, but there's a set of debug, enabled by --tags=debug (that's
what the tags: never is for, to make sure it doesn't run unless
explicitly requested).
David Galloway [Thu, 14 May 2026 22:08:10 +0000 (18:08 -0400)]
nameserver: Disable minimal-responses
Just upgraded vpn-pub to el9.
BIND 9.16 (EL9) changed the default behavior for minimal-responses,
causing authority and additional (glue) sections to be omitted from
responses. Set minimal-responses no explicitly to restore consistent
behavior across all nameservers regardless of BIND version.
Signed-off-by: David Galloway <david.galloway@ibm.com>
David Galloway [Thu, 14 May 2026 16:28:33 +0000 (12:28 -0400)]
users: Change home dir path for teuthology host
The home dirs live at the /tank/home mountpoint. This change will default to /home unless the host we're running the role against is in the teuthology ansible group.
Fixes: https://tracker.ceph.com/issues/63562 Signed-off-by: David Galloway <david.galloway@ibm.com>
Adam Kraitman [Wed, 16 Jul 2025 07:18:07 +0000 (10:18 +0300)]
Add cleanup tasks to resolve Grafana APT repository conflict
The new tasks remove the conflicting key file and duplicate repository entries before adding the standardized Grafana repository, ensuring a clean APT configuration
Signed-off-by: Adam Kraitman <akraitma@li-8b09b2cc-35b7-11b2-a85c-cd1dbade58f9.ibm.com>
David Galloway [Fri, 8 May 2026 20:59:38 +0000 (20:59 +0000)]
maas: quote variable usages to satisfy ansible-lint var-spacing
ansible-lint's var-spacing rule flags '{{ var }}temp' and 'prefix-{{ var }}'
because non-whitespace characters border the Jinja delimiters. Switch the
'temp' suffix to a Jinja string concatenation, and quote the YAML scalars
where a literal joins a variable so the boundaries are unambiguous.
Signed-off-by: David Galloway <david.galloway@ibm.com>
David Galloway [Fri, 20 Feb 2026 00:21:57 +0000 (19:21 -0500)]
nameserver: Match A records to reverse[] in named_domains
This will let multiple subnets/domains use the same ipvar
For example, bath and infra-compute can both have a if_25Gb_ip
```
bath14.front.sepia.ceph.com if_25Gb_ip=10.20.192.44
infra-compute-01.os.sepia.ceph.com if_25Gb_1_ip=172.16.53.11
- Using systemd instead of rc.local:
- Configure netplan on boot for Ubuntu
- Configure NetworkManager on boot for CentOS/Rocky
- Set hostname
- Update packages and reboot
Signed-off-by: David Galloway <david.galloway@ibm.com>
David Galloway [Wed, 28 Jan 2026 18:40:27 +0000 (13:40 -0500)]
testnode: Specify a few mirrors for Rocky 10
As was the case with EPEL mirrors, hitting the mirrorlist.rockylinux.org endpoint frequently fails and causes jobs to die. We'll just specify a few mirrors manually.
DNF's behavior is to try them in order when multiple baseurls are defined.
Fixes: https://tracker.ceph.com/issues/74620 Signed-off-by: David Galloway <david.galloway@ibm.com>