Skip to content

Commit df793bf

Browse files
authored
ansible: add new AIX 7.2 machines from IBM (#3205)
1 parent 67ccfec commit df793bf

8 files changed

Lines changed: 93 additions & 68 deletions

File tree

ansible/MANUAL_STEPS.md

Lines changed: 34 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@
1010
* [Install Command Line Tools for Xcode](#install-command-line-tools-for-xcode)
1111
* [AIX](#aix)
1212
* [Disk layout](#disk-layout)
13-
* [AIX 7.1](#aix-71)
13+
* [OpenSSL](#openssl)
1414
* [Remove en1 network interface](#remove-en1-network-interface)
15+
* [AIX 7.1](#aix-71)
1516
* [Update XL C/C++ Runtime](#update-xl-cc-runtime)
1617
* [AIX 7.2 Install](#aix-72-install)
1718
* [ccache 3.7.4 on AIX 7.2](#ccache-374-on-aix-72)
@@ -392,13 +393,41 @@ ENCRYPTION: no
392393
#
393394
```
394395

395-
## AIX 7.1
396+
### OpenSSL
397+
398+
On AIX OpenSSL is not available as an rpm via yum/dnf and is instead an
399+
installp fileset that must be manually downloaded and installed.
400+
401+
Go to https://www.ibm.com/resources/mrs/assets?source=aixbp&S_PKG=openssl
402+
and pick the most recent OpenSSL release (each package should contain
403+
compatibility libraries for older versions). Download/copy the `.tar.Z`
404+
package (URL will be temporary) on to the machine into a temporary directory
405+
e.g. `/tmp/openssl`.
406+
407+
```console
408+
curl -sL openssl-3.0.8.1000.tar.Z https://iwm.dhe.ibm.com/.../openssl-3.0.8.1000.tar.Z
409+
```
410+
411+
Then unpack the compressed archive:
412+
```console
413+
zcat openssl-3.0.8.1000.tar.Z | tar -xvf -
414+
```
415+
416+
and install:
417+
```console
418+
installp -aXYgd openssl-3.0.8.1000 -e /tmp/install.log all
419+
```
420+
421+
To see a list of installed packages, run:
422+
```console
423+
lslpp -L all
424+
```
396425

397426
### Remove en1 network interface
398427

399428
Some libuv/Node.js tests currently fail on AIX with a network interface
400429
containing a link local address. This is being tracked in
401-
https://github.com/nodejs/node/issues/39143. In the meantime the `en1`
430+
https://github.com/nodejs/node/issues/46792. In the meantime the `en1`
402431
interface containing the link local address is removed.
403432
```
404433
sudo ifconfig en1 down detach
@@ -413,6 +442,8 @@ to list the available interfaces. To add back the `en1` interface, run
413442
sudo autoconf6 -i en1
414443
```
415444

445+
## AIX 7.1
446+
416447
### Update XL C/C++ Runtime
417448

418449
Java 17 requires XL C/C++ Runtime 16.1 available from https://www.ibm.com/support/pages/fix-list-xl-cc-runtime-aix#161X.

ansible/inventory.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ hosts:
4242
aix71-ppc64_be-2:
4343
ip: 169.59.74.10
4444
server_jobs: 6
45+
aix72-ppc64_be-1:
46+
ip: 169.54.113.163
47+
remote_env:
48+
PATH: /opt/freeware/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin
49+
server_jobs: 8
4550
rhel7-s390x-1: {ip: 148.100.84.166, user: linux1}
4651
rhel8-s390x-1: {ip: 148.100.84.45, user: linux1}
4752
rhel8-x64-1: {ip: 169.62.77.228}
@@ -152,6 +157,16 @@ hosts:
152157
aix71-ppc64_be-4:
153158
ip: 169.59.74.12
154159
server_jobs: 6
160+
aix72-ppc64_be-1:
161+
ip: 169.54.113.142
162+
remote_env:
163+
PATH: /opt/freeware/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin
164+
server_jobs: 8
165+
aix72-ppc64_be-2:
166+
ip: 169.54.113.165
167+
remote_env:
168+
PATH: /opt/freeware/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin
169+
server_jobs: 8
155170
aix73-ppc64_be-1:
156171
ansible_python_interpreter: /opt/freeware/bin/python3
157172
ansible_remote_tmp: /tmp/.ansible

ansible/roles/baselayout/tasks/partials/ccache/aix.yml

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,12 @@
2828

2929
- name: "ccache : install - create directory aix"
3030
file:
31-
path: /opt/ccache-3.7.4/{{ item.dest }}
31+
path: /opt/ccache-3.7.4/{{ item }}
3232
state: directory
3333
mode: '0755'
3434
loop:
35-
- { dest: bin }
36-
- { dest: libexec }
35+
- bin
36+
- libexec
3737
when: not has_ccache.stat.exists
3838

3939
- name: "ccache : install - move file aix"
@@ -45,21 +45,22 @@
4545
- name: "ccache : create symlinks - aix"
4646
file:
4747
src: /opt/ccache-3.7.4/bin/ccache
48-
dest: /opt/ccache-3.7.4/libexec/{{ item.dest }}
48+
dest: /opt/ccache-3.7.4/libexec/{{ item }}
4949
owner: root
5050
group: system
5151
state: link
5252
loop:
53-
- { dest: c++ }
54-
- { dest: cpp }
55-
- { dest: g++ }
56-
- { dest: gcc }
57-
- { dest: gcov }
58-
- { dest: g++-6 }
59-
- { dest: gcc-6 }
60-
- { dest: g++-8 }
61-
- { dest: gcc-8 }
62-
when: not has_ccache.stat.exists
53+
- c++
54+
- cpp
55+
- g++
56+
- gcc
57+
- gcov
58+
- g++-6
59+
- gcc-6
60+
- g++-8
61+
- gcc-8
62+
- gcc-10
63+
- g++-10
6364

6465
- name: "ccache : cleanup - aix tarball"
6566
file:

ansible/roles/baselayout/tasks/partials/ccache/aix73.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

ansible/roles/baselayout/vars/main.yml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,11 @@ packages: {
6060
],
6161

6262
aix72: [
63-
'gcc6-c++',
63+
'gcc6-c++,gcc8-c++,gcc10-c++'
64+
],
65+
66+
aix73: [
67+
'gcc8-c++,gcc10-c++'
6468
],
6569

6670
ibmi: [

ansible/roles/jenkins-worker/tasks/partials/tap2junit/aix.yml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,17 @@
1515
dest: /home/iojs/get-pip.py
1616
when: pip_exists.stat.exists == False
1717

18+
- name: Locate Python 3
19+
changed_when: No
20+
command: command -v python3
21+
register: python3_path
22+
1823
- name: install pip AIX71
1924
raw: /opt/freeware/bin/python3 /home/iojs/get-pip.py
2025
when: pip_exists.stat.exists == False and os == "aix71"
2126

2227
- name: install pip AIX72
23-
raw: /opt/bin/python3 /home/iojs/get-pip.py
28+
ansible.builtin.command: python3 /home/iojs/get-pip.py
2429
when: pip_exists.stat.exists == False and os == "aix72"
2530

2631
- name: create symbolic link AIX71
@@ -32,7 +37,7 @@
3237

3338
- name: create symbolic link AIX72
3439
file:
35-
src: "/opt/bin/pip"
40+
src: "{{ python3_path.stdout | dirname }}/pip"
3641
dest: "/usr/bin/pip"
3742
state: link
3843
when: pip_exists.stat.exists == False and os == "aix72"

ansible/roles/jenkins-worker/templates/aix.rc2.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ start )
1414
export TERM=ansi; \
1515
export jenkins_log_file="/home/{{server_user}}/jenkins_console.log"; \
1616
export HOME=/home/{{server_user}}; \
17-
export LIBPATH=/opt/freeware/lib64:/usr/lib:/lib; \
17+
export LIBPATH=/opt/freeware/lib64:/opt/freeware/lib:/usr/lib:/lib; \
1818
export NODE_TEST_DIR=$HOME/tmp; \
1919
export NODE_COMMON_PIPE="$HOME/test.pipe"; \
2020
export PATH="/opt/freeware/bin:/usr/opt/python3/bin/:$PATH"; \

jenkins/scripts/select-compiler.sh

Lines changed: 16 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -143,57 +143,32 @@ elif [ "$SELECT_ARCH" = "IBMI73" ]; then
143143
echo "Compiler set to $COMPILER_LEVEL"
144144

145145
elif [ "$SELECT_ARCH" = "AIXPPC" ]; then
146+
if [ "$NODEJS_MAJOR_VERSION" -gt "19" ]; then
147+
export COMPILER_LEVEL="10"
148+
elif [ "$NODEJS_MAJOR_VERSION" -gt "15" ]; then
149+
export COMPILER_LEVEL="8"
150+
elif [ "$NODEJS_MAJOR_VERSION" -gt "9" ]; then
151+
export COMPILER_LEVEL="6"
152+
fi
153+
146154
case $NODE_NAME in
147155
*aix73* )
148-
export COMPILER_LEVEL="10"
149156
echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on AIX 7.3"
150-
export CC="ccache-swig gcc-${COMPILER_LEVEL}"
151-
export CXX="ccache-swig g++-${COMPILER_LEVEL}"
152-
export LINK="g++-${COMPILER_LEVEL}"
153-
echo "Compiler set to:" `$CXX -dumpversion`
154-
return
155157
;;
156158
*aix72* )
157-
echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on AIX7.2"
158-
if [ "$NODEJS_MAJOR_VERSION" -gt "15" ]; then
159-
export PATH="/opt/ccache-3.7.4/libexec:/opt/freeware/bin:$PATH"
160-
export CC="gcc" CXX="g++" CXX_host="g++"
161-
unset LIBPATH
162-
echo "Compiler set to 8.3"
163-
return
164-
elif [ "$NODEJS_MAJOR_VERSION" -gt "9" ]; then
165-
export PATH="/opt/ccache-3.7.4/libexec:/opt/gcc-6.3/bin:/opt/freeware/bin:$PATH"
166-
export CC="gcc" CXX="g++" CXX_host="g++"
167-
export LIBPATH=/opt/gcc-6.3/lib/gcc/powerpc-ibm-aix7.2.0.0/6.3.0/pthread/ppc64:/opt/gcc-6.3/lib
168-
echo "Compiler set to 6.3"
169-
return
170-
else
171-
echo "Compiler left as system default:" `g++ -dumpversion`
172-
return
173-
fi
159+
echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on AIX 7.2"
174160
;;
175-
176161
*aix71* )
177-
echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on AIX7.1"
178-
if [ "$NODEJS_MAJOR_VERSION" -gt "15" ]; then
179-
export PATH="/opt/ccache-3.7.4/libexec:/opt/freeware/bin:$PATH"
180-
export CC="gcc" CXX="g++" CXX_host="g++"
181-
unset LIBPATH
182-
echo "Compiler set to 8.3"
183-
return
184-
elif [ "$NODEJS_MAJOR_VERSION" -gt "9" ]; then
185-
export PATH="/opt/ccache-3.7.4/libexec:/opt/freeware/gcc6/bin:/opt/freeware/bin:$PATH"
186-
export CC="gcc-6" CXX="g++-6" CXX_host="g++-6"
187-
unset LIBPATH
188-
echo "Compiler set to 6.3"
189-
return
190-
else
191-
echo "Compiler left as system default:" `g++ -dumpversion`
192-
return
193-
fi
162+
echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on AIX 7.1"
194163
;;
195164
esac
196165

166+
export CC="gcc-${COMPILER_LEVEL}"
167+
export CXX="g++-${COMPILER_LEVEL}"
168+
export LINK="g++-${COMPILER_LEVEL}"
169+
export PATH="/opt/ccache-3.7.4/libexec:/opt/freeware/bin:$PATH"
170+
echo "Compiler set to GCC" `$CXX -dumpversion`
171+
197172
elif [ "$SELECT_ARCH" = "X64" ]; then
198173
echo "Setting compiler for Node version $NODEJS_MAJOR_VERSION on x64"
199174

0 commit comments

Comments
 (0)