Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
295 changes: 75 additions & 220 deletions ansible/MANUAL_STEPS.md

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion ansible/roles/baselayout/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@
stat: path="{{ binary_dest }}"
register: has_git

- name: install packages
- name: install native packages
when: not os|startswith("zos") and not os|startswith("macos")
package:
name: "{{ package }}"
Expand Down
2 changes: 1 addition & 1 deletion ansible/roles/baselayout/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ packages: {

# Appears to be some issue with the Ansible dnf task on AIX and gcc10-c++, so handle separately.
aix73: [
'gcc8-c++,gcc12-c++'
'gcc8-c++,gcc12-c++,python3-pip'

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could install python3-pip in ansible/roles/jenkins-worker/tasks/partials/tap2junit/aix73.yml as it'd be nearer to where it is actually needed.

And on that subject, it's probably my fault (or necessary when we supported older versions of AIX) but ansible/roles/jenkins-worker/tasks/partials/tap2junit/aix.yml and ansible/roles/jenkins-worker/tasks/partials/tap2junit/aix73.yml could likely be unified.

@sxa sxa May 18, 2026 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah I was a bit torn as to whether to leave that in the tap2junt role but I erred on the side of putting it next to some of the existing setup commands to keep those roles just for their intended installation. A philosophical question really, happy to move it if you'd prefer.

Yeah I agree that those could likely be unified into a common aix.yml but did it this way for now as i was only playing with 7.3 boxed and I wouldn't want to unify without verifying that it definitely worked on 7.2 (and also whether running the playbooks with it being pulled from the repos on 7.2 would conflict with machines already set up by the "outside dnf" setup)

],

ibmi: [
Expand Down
55 changes: 53 additions & 2 deletions ansible/roles/bootstrap/tasks/partials/aix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
size: 2G
state: present

- name: Set size of /home to 50G
- name: Set size of /home to 50G (If it fails try chlv -x 2048 on the LV for /home)
aix_filesystem:
filesystem: /home
size: 50G
Expand All @@ -53,7 +53,7 @@
path: /aha
state: directory

- name: Mount /aha filesystem
- name: Mount /aha filesystem (if this fails install bos.ahafs)
shell:
cmd: mount -v ahafs /aha /aha
when: ahafs.matched == 0
Expand All @@ -74,7 +74,58 @@
ansible.builtin.command: hostname {{ inventory_hostname }}
when: current_hostname.stdout != inventory_hostname

- name: Ensure the python3-dnf package is up to date
shell:
cmd: /opt/freeware/bin/dnf install -y python3-dnf

- name: set pkg_mgr
ansible.builtin.set_fact:
ansible_facts:
pkg_mgr: dnf

- name: Check for presence of C++ ADT headers
changed_when: no
check_mode: no
command: "lslpp -l libc++.adt.include"
register: adtheaders_installed
ignore_errors: yes

# This is from https://www.ibm.com/support/pages/open-xl-cc-aix-utilities

- name: Download OpenXL utilities to /var/cache if needed
get_url:
checksum: sha256:0d8aba8d06ad403b00a44d5a4466cf55aaeb3a912f071ec840d2ff762a738e28
dest: "/var/cache/IBM_OPEN_XL_CPP_UTILITIES_17.1.4.1_AIX.tar.Z"
url: "https://public.dhe.ibm.com/aix/products/ccpp/xlc.rte.aix.17.1.4/IBM_OPEN_XL_CPP_UTILITIES_17.1.4.1_AIX.tar.Z"
register: clang_local
when: adtheaders_installed.rc != 0

- name: Create /tmpopenxlUtilities
file:
path: /tmp/openxlUtilities
state: directory
mode: 0700
when: adtheaders_installed.rc != 0

# "unarchive" function can't handle the tar.Z file, so call to shell instead
# which also makes it a bit easier to extract only the fileset we require

- name: Unpack OpenXL utilities
shell: "uncompress -c /var/cache/IBM_OPEN_XL_CPP_UTILITIES_17.1.4.1_AIX.tar.Z | tar xpf - -C /tmp/openxlUtilities libc++.adt.include"
when: adtheaders_installed.rc != 0

- name: Install C++ ADT headers from OpenXL utilities
command: "installp -qaFXYd /tmp/openxlUtilities libc++.adt.include"
when: adtheaders_installed.rc != 0

- name: Cleanup /tmp/openxlUtilities
file:
path: "/tmp/openxlUtilities"
state: absent
when: adtheaders_installed.rc != 0

# Ref: https://www.ibm.com/support/pages/understanding-aix-virtual-rpm-package-rpmrte

- name: Run updtvpkg to get ODM and DNF databases in sync
command: /usr/sbin/updtvpkg
when: adtheaders_installed.rc != 0
2 changes: 1 addition & 1 deletion ansible/roles/java-base/vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,5 +39,5 @@ adoptopenjdk: {

adoptopenjdk_arch: "{{ adoptopenjdk[os+'_'+arch].arch | default(ansible_architecture) }}"
adoptopenjdk_os: "{{ adoptopenjdk[os+'_'+arch].os | default(ansible_system | lower) }}"
adoptopenjdk_version: "{{ adoptopenjdk[os+'_'+arch].version | default('17') }}"
adoptopenjdk_version: "{{ adoptopenjdk[os+'_'+arch].version | default('25') }}"
use_adoptopenjdk: "{{ adoptopenjdk[os+'_'+arch] is defined | bool }}"
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@
ansible.builtin.pip:
name: tap2junit=={{ tap2junit_version }}
state: present
executable: /usr/bin/pip3
executable: /opt/freeware/bin/pip3
2 changes: 1 addition & 1 deletion ansible/roles/package-upgrade/tasks/partials/dnf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Updates all packages for fedora-based distributions
#

- name: upgrade installed packages
- name: upgrade installed packages using dnf
ansible.builtin.dnf:
name: "*"
state: latest
Expand Down
2 changes: 1 addition & 1 deletion ansible/roles/package-upgrade/tasks/partials/yum.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
- name: clean yum packages cache
ansible.builtin.command: yum clean packages

- name: upgrade installed packages
- name: upgrade installed packages using yum
yum: name=* state=latest use_backend=yum expire-cache=yes
# If difficulty recognizing yum is encountered, see https://github.com/ansible/ansible/pull/69484, it is possible
# to apply that patch manually to a local install of ansible (if necessary).
Loading