diff --git a/ansible/inventory.yml b/ansible/inventory.yml index 06fcc01c1..b90a7e883 100644 --- a/ansible/inventory.yml +++ b/ansible/inventory.yml @@ -46,8 +46,7 @@ hosts: remote_env: PATH: /opt/freeware/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin server_jobs: 8 - rhel7-s390x-1: {ip: 148.100.84.166, user: linux1} - rhel8-s390x-1: {ip: 148.100.84.45, user: linux1} + rhel8-s390x-1: {ip: 148.100.84.45, swap_file_size_mb: 2048, user: linux1} rhel8-x64-1: {ip: 169.62.77.228} rhel8-x64-2: {ip: 52.117.26.5} @@ -76,13 +75,12 @@ hosts: ip: 140.211.9.77 server_jobs: 6 centos7-arm64-1: {ip: 140.211.169.7, server_jobs: 2, user: centos} - centos7-ppc64_le-1: {ip: 140.211.168.61, user: centos} rhel8-arm64-1: ip: 140.211.169.58 server_jobs: 2 user: cloud-user swap_file_size_mb: 4096 - rhel8-ppc64_le-1: {ip: 140.211.168.185, user: cloud-user} + rhel8-ppc64_le-1: {ip: 140.211.168.185, swap_file_size_mb: 2048, user: cloud-user} - orka: macos11-x64-1: @@ -152,14 +150,10 @@ hosts: remote_env: PATH: /opt/freeware/bin:/usr/bin:/etc:/usr/sbin:/usr/ucb:/usr/bin/X11:/sbin server_jobs: 6 - rhel7-s390x-1: {ip: 148.100.84.221, user: linux1, build_test_v8: yes} - rhel7-s390x-2: {ip: 148.100.84.114, user: linux1, build_test_v8: yes} - rhel7-s390x-3: {ip: 148.100.84.50, user: linux1, build_test_v8: yes} - rhel7-s390x-4: {ip: 148.100.84.235, user: linux1, build_test_v8: yes} - rhel8-s390x-1: {ip: 148.100.84.98, user: linux1, build_test_v8: yes} - rhel8-s390x-2: {ip: 148.100.84.38, user: linux1, build_test_v8: yes} - rhel8-s390x-3: {ip: 148.100.84.17, user: linux1, build_test_v8: yes} - rhel8-s390x-4: {ip: 148.100.84.239, user: linux1, build_test_v8: yes} + rhel8-s390x-1: {ip: 148.100.84.98, user: linux1, build_test_v8: yes, swap_file_size_mb: 2048} + rhel8-s390x-2: {ip: 148.100.84.38, user: linux1, build_test_v8: yes, swap_file_size_mb: 2048} + rhel8-s390x-3: {ip: 148.100.84.17, user: linux1, build_test_v8: yes, swap_file_size_mb: 2048} + rhel8-s390x-4: {ip: 148.100.84.239, user: linux1, build_test_v8: yes, swap_file_size_mb: 2048} rhel8-x64-1: {ip: 169.61.75.51, build_test_v8: yes} rhel8-x64-2: {ip: 169.61.75.58, build_test_v8: yes} rhel8-x64-3: {ip: 52.117.26.13, build_test_v8: yes} @@ -204,6 +198,12 @@ hosts: remote_env: PATH: /opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin + - linuxonecc: + rhel9-s390x-1: {ip: 148.100.85.171, swap_file_size_mb: 2048, user: linux1} + rhel9-s390x-2: {ip: 148.100.85.83, swap_file_size_mb: 2048, user: linux1} + rhel9-s390x-3: {ip: 148.100.85.130, swap_file_size_mb: 2048, user: linux1} + rhel9-s390x-4: {ip: 148.100.85.227, swap_file_size_mb: 2048, user: linux1} + - marist: zos24-s390x-1: ip: 148.100.36.155 @@ -252,13 +252,13 @@ hosts: aix72-ppc64_be-4: ip: 140.211.9.101 server_jobs: 6 - centos7-ppc64_le-1: {ip: 140.211.168.32, user: centos, build_test_v8: yes} - centos7-ppc64_le-2: {ip: 140.211.168.78, user: centos, build_test_v8: yes} - centos7-ppc64_le-3: {ip: 140.211.168.239, user: centos, build_test_v8: yes} - rhel8-ppc64_le-1: {ip: 140.211.168.183, user: cloud-user, build_test_v8: yes} - rhel8-ppc64_le-2: {ip: 140.211.168.76, user: cloud-user, build_test_v8: yes} - rhel8-ppc64_le-3: {ip: 140.211.168.221, user: cloud-user, build_test_v8: yes} - rhel8-ppc64_le-4: {ip: 140.211.168.194, user: cloud-user, build_test_v8: yes} + rhel8-ppc64_le-1: {ip: 140.211.168.183, user: cloud-user, build_test_v8: yes, swap_file_size_mb: 2048} + rhel8-ppc64_le-2: {ip: 140.211.168.76, user: cloud-user, build_test_v8: yes, swap_file_size_mb: 2048} + rhel8-ppc64_le-3: {ip: 140.211.168.221, user: cloud-user, build_test_v8: yes, swap_file_size_mb: 2048} + rhel8-ppc64_le-4: {ip: 140.211.168.194, user: cloud-user, build_test_v8: yes, swap_file_size_mb: 2048} + rhel9-ppc64_le-1: {ip: 140.211.10.92, user: cloud-user, swap_file_size_mb: 2048} + rhel9-ppc64_le-2: {ip: 140.211.10.69, user: cloud-user, swap_file_size_mb: 2048} + rhel9-ppc64_le-3: {ip: 140.211.10.110, user: cloud-user, swap_file_size_mb: 2048} ubuntu2004_docker-arm64-1: {ip: 140.211.169.11, user: ubuntu} - orka: diff --git a/ansible/roles/bootstrap/tasks/partials/rhel9-s390x.yml b/ansible/roles/bootstrap/tasks/partials/rhel9-s390x.yml new file mode 100644 index 000000000..86d275748 --- /dev/null +++ b/ansible/roles/bootstrap/tasks/partials/rhel9-s390x.yml @@ -0,0 +1,50 @@ +--- + +# Red Hat Enterprise Linux 9 on s390x (LinuxONE) + +- name: run common RHEL 9 tasks + ansible.builtin.include_tasks: rhel9.yml + +- name: Firewall | install iptables-services + ansible.builtin.dnf: + name: iptables-services + state: present + +- name: Firewall | enable iptables + ansible.builtin.systemd: + enabled: yes + name: iptables + +- name: Firewall | remove firewalld + ansible.builtin.dnf: + name: firewalld + state: absent + +# The presence of /etc/sysconfig/iptables.save appears to be interfering +# with rules being loaded after a system reboot, so remove. +- name: Firewall | remove iptables.save + ansible.builtin.file: + path: /etc/sysconfig/iptables.save + state: absent + notify: restart iptables + +- name: Firewall | add rule to allow accepting multicast + lineinfile: + dest: /etc/sysconfig/iptables + insertafter: ":OUTPUT ACCEPT.*]" + line: "-A INPUT -m pkttype --pkt-type multicast -j ACCEPT" + notify: restart iptables + +- name: Firewall | add basic rule to allow communication locally + lineinfile: + dest: /etc/sysconfig/iptables + insertafter: ":OUTPUT ACCEPT.*]" + line: "-A INPUT -s 127.0.0.1/32 -d 127.0.0.1/32 -j ACCEPT" + notify: restart iptables + +- name: Firewall | add additional rule to allow communication from 127.0.0.2 + lineinfile: + dest: /etc/sysconfig/iptables + insertafter: ":OUTPUT ACCEPT.*]" + line: "-A INPUT -s 127.0.0.2/32 -d 127.0.0.1/32 -j ACCEPT" + notify: restart iptables diff --git a/ansible/roles/jenkins-worker/tasks/main.yml b/ansible/roles/jenkins-worker/tasks/main.yml index dcfeb5e3e..718b1cdd8 100644 --- a/ansible/roles/jenkins-worker/tasks/main.yml +++ b/ansible/roles/jenkins-worker/tasks/main.yml @@ -14,10 +14,10 @@ jobs_env: "{{ jobs_variants[os|stripversion] }}" when: jobs_env is undefined and server_jobs is undefined and os|stripversion in jobs_variants -- name: set jobs_env from server_jobs or ansible_processor_vcpus +- name: set jobs_env from server_jobs or ansible_processor_vcpus or ansible_processor_cores set_fact: - jobs_env: "{{ server_jobs|default(ansible_processor_vcpus) }}" - when: jobs_env is undefined and (server_jobs is defined or ansible_processor_vcpus is defined) + jobs_env: "{{ server_jobs|default(ansible_processor_vcpus)|default(ansible_processor_cores) }}" + when: jobs_env is undefined and (server_jobs is defined or ansible_processor_vcpus is defined or ansible_processor_cores is defined) - name: set jobs_env to fall-back value of 2 set_fact: diff --git a/jenkins/scripts/select-compiler.sh b/jenkins/scripts/select-compiler.sh index c4b1261bf..baa70fb34 100644 --- a/jenkins/scripts/select-compiler.sh +++ b/jenkins/scripts/select-compiler.sh @@ -35,6 +35,19 @@ fi # Linux distros should be arch agnostic case $NODE_NAME in + *rhel9*|*ubi9*) + echo "Setting compiler for Node.js $NODEJS_MAJOR_VERSION on" `cat /etc/redhat-release` + if [ "$NODEJS_MAJOR_VERSION" -gt "21" ]; then + # s390x, use later toolset to avoid https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106355 + if [ "$SELECT_ARCH" = "S390X" ]; then + . /opt/rh/gcc-toolset-12/enable + fi + fi + export CC="ccache gcc" + export CXX="ccache g++" + echo "Selected compiler:" `${CXX} -dumpversion` + return + ;; *rhel8*|*ubi8*) case "$CONFIG_FLAGS" in *--enable-lto*)