I would love to be able to run awx on a raspberry pi 4. The latest raspberry pi with its stats should be plenty to run the full awx stack, and it would be so useful for people like me who run home labs of just raspberry pis. Ive attempted to run install with dockerhub_base commented out in inventory to make the playbooks build the images on the pi 4 but i hit this error:
TASK [image_build : Build AWX distribution using container] ******************************************************************************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "msg": "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=1 npm --unsafe-perm --prefix awx/ui ci --no-save awx/ui\n\n> [email protected] install /awx/awx/ui/node_modules/fsevents\n> node install\n\n\n> [email protected] postinstall /awx/awx/ui/node_modules/uglifyjs-webpack-plugin\n> node lib/post_install.js\n\n\n> [email protected] install /awx/awx/ui/node_modules/puppeteer\n> node install.js\n\n**INFO** Skipping Chromium download. \"PUPPETEER_SKIP_CHROMIUM_DOWNLOAD\" environment variable was found.\n\n> [email protected] postinstall /awx/awx/ui/node_modules/nunjucks\n> node postinstall-build.js src\n\n\n> [email protected] install /awx/awx/ui/node_modules/chromedriver\n> node install.js\n\nOnly Linux 64 bits supported.\nnpm ERR! code ELIFECYCLE\nnpm ERR! errno 1\nnpm ERR! [email protected] install: `node install.js`\nnpm ERR! Exit status 1\nnpm ERR! \nnpm ERR! Failed at the [email protected] install script.\nnpm ERR! This is probably not a problem with npm. There is likely additional logging output above.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR! /root/.npm/_logs/2020-05-17T02_23_59_085Z-debug.log\nmake: *** [Makefile:503: awx/ui/.release_deps_built] Error 1\n", "status": 2}
PLAY RECAP *******************************************************************************************************************************************************************
localhost : ok=10 changed=2 unreachable=0 failed=1 skipped=3 rescued=0 ignored=0
Looks like its failing during the npm install when it installs chromedriver... I'm not sure how to fix this since chromedriver seems to explicitly support x86 only.
https://github.com/giggio/node-chromedriver/issues/156
Maybe theres a way to skip chromedriver? I think its used by puppeteer and i assume puppeteer isnt needed during the build? Open to ideas! And I dont mind doing the work!
Actually after reading through the new install.js on master of chromedriver it seems like it now supports arm64. Maybe we just need to use the latest version.
This morning I updated chromedriver (npm i -s -d chromedriver@^77.0.0) and the build got quite a bit further! now i have a new error:
TASK [image_build : Build base web image] ************************************************************************************************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "msg": "Error building awx_web - code: 1, message: The command '/bin/sh -c dnf -y update && dnf -y install https://github.com/krallin/tini/releases/download/v0.18.0/tini_0.18.0.rpm && dnf -y install epel-release 'dnf-command(config-manager)' && dnf module -y enable 'postgresql:10' && dnf config-manager --set-enabled PowerTools && dnf -y install acl ansible bubblewrap curl diffutils dnf-utils gcc gcc-c++ gettext git-core glibc-langpack-en krb5-workstation kubectl libcurl-devel libffi-devel libstdc++.so.6 libtool-ltdl-devel libcgroup-tools make mercurial nginx nodejs nss openldap-devel openssh-server patch @postgresql:10 postgresql-devel python3-devel python3-libselinux python3-pip python3-psycopg2 python3-setuptools python3-pycurl rsync rsyslog-omhttp subversion sudo swig tmux unzip vim-minimal which xmlsec1 xmlsec1-devel xmlsec1-openssl xmlsec1-openssl-devel' returned a non-zero code: 1, logs: ['Step 1/37 : FROM centos:8', '\\n', ' ---> 796035f59a88\\n', 'Step 2/37 : ENV LANG en_US.UTF-8', '\\n', ' ---> Running in 0f310fea7b74\\n', 'Removing intermediate container 0f310fea7b74\\n', ' ---> 2a301e9da183\\n', 'Step 3/37 : ENV LANGUAGE en_US:en', '\\n', ' ---> Running in 1c0798471fa9\\n', 'Removing intermediate container 1c0798471fa9\\n', ' ---> 8f88d56a94d9\\n', 'Step 4/37 : ENV LC_ALL en_US.UTF-8', '\\n', ' ---> Running in 9e7e50e39c45\\n', 'Removing intermediate container 9e7e50e39c45\\n', ' ---> 88d5be314483\\n', 'Step 5/37 : USER root', '\\n', ' ---> Running in 0e33c0a6b8a8\\n', 'Removing intermediate container 0e33c0a6b8a8\\n', ' ---> 8f568b2c3f3f\\n', 'Step 6/37 : ADD google-cloud-sdk.repo /etc/yum.repos.d/', '\\n', ' ---> 93da05945d0a\\n', 'Step 7/37 : ADD rsyslog.repo /etc/yum.repos.d/rsyslog.repo', '\\n', ' ---> 19dd55caba03\\n', \"Step 8/37 : RUN dnf -y update && dnf -y install https://github.com/krallin/tini/releases/download/v0.18.0/tini_0.18.0.rpm && dnf -y install epel-release 'dnf-command(config-manager)' && dnf module -y enable 'postgresql:10' && dnf config-manager --set-enabled PowerTools && dnf -y install acl ansible bubblewrap curl diffutils dnf-utils gcc gcc-c++ gettext git-core glibc-langpack-en krb5-workstation kubectl libcurl-devel libffi-devel libstdc++.so.6 libtool-ltdl-devel libcgroup-tools make mercurial nginx nodejs nss openldap-devel openssh-server patch @postgresql:10 postgresql-devel python3-devel python3-libselinux python3-pip python3-psycopg2 python3-setuptools python3-pycurl rsync rsyslog-omhttp subversion sudo swig tmux unzip vim-minimal which xmlsec1 xmlsec1-devel xmlsec1-openssl xmlsec1-openssl-devel\", '\\n', ' ---> Running in 4796722ce6a7\\n', '\\x1b[91m/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)\\n\\x1b[0m', 'CentOS-8 - AppStream 3.4 MB/s | 5.6 MB 00:01 \\n', 'CentOS-8 - Base 1.2 MB/s | 1.8 MB 00:01 \\n', 'CentOS-8 - Extras 8.1 kB/s | 5.9 kB 00:00 \\n', 'Google Cloud SDK 6.1 MB/s | 36 MB 00:05 \\n', 'Adiscon CentOS-8 - local packages for aarch64 357 B/s | 278 B 00:00 \\n', \"\\x1b[91mFailed to set locale, defaulting to C.UTF-8\\nFailed to download metadata for repo 'rsyslog_v8'\\n\\x1b[0m\", \"\\x1b[91mError: Failed to download metadata for repo 'rsyslog_v8'\\n\\x1b[0m\", 'Removing intermediate container 4796722ce6a7\\n']"}
Ok so looks like rpms.adiscon.com doesnt have a repo for aarch64, only x86...
Looks like the latest master isnt using the adiscon repo anymore. Ill try running the build on a newer branch of the awx repo (ive been using 11.2.0)
Ok so attempted a build on the latest devel branch. and i got further. Now getting this error:
TASK [image_build : Build base web image] ************************************************************************************************************************************
fatal: [localhost -> localhost]: FAILED! => {"changed": false, "msg": "Error building awx_web - code: 1, message: The command '/bin/sh -c dnf -y update && dnf -y install epel-release 'dnf-command(config-manager)' && dnf module -y enable 'postgresql:10' && dnf config-manager --set-enabled PowerTools && dnf -y install ansible gcc gcc-c++ gettext git-core glibc-langpack-en libcurl-devel libffi-devel libstdc++.so.6 libtool-ltdl-devel make nodejs nss openldap-devel patch @postgresql:10 postgresql-devel python3-devel python3-pip python3-psycopg2 python3-setuptools swig unzip xmlsec1-devel xmlsec1-openssl-devel' returned a non-zero code: 1, logs: ['Step 1/48 : ARG VENV_BASE=\"/var/lib/awx/venv\"', '\\n', 'Step 2/48 : ARG COLLECTION_BASE=\"/var/lib/awx/vendor/awx_ansible_collections\"', '\\n', 'Step 3/48 : FROM centos:8 as builder', '\\n', ' ---> 796035f59a88\\n', 'Step 4/48 : ARG VENV_BASE', '\\n', ' ---> Running in e01e97514a19\\n', 'Removing intermediate container e01e97514a19\\n', ' ---> 1d75d4ef8d17\\n', 'Step 5/48 : ARG COLLECTION_BASE', '\\n', ' ---> Running in 204b068bca34\\n', 'Removing intermediate container 204b068bca34\\n', ' ---> 2189963b76ce\\n', 'Step 6/48 : ENV LANG en_US.UTF-8', '\\n', ' ---> Running in 4f5c708efd90\\n', 'Removing intermediate container 4f5c708efd90\\n', ' ---> a7b40341b8c1\\n', 'Step 7/48 : ENV LANGUAGE en_US:en', '\\n', ' ---> Running in 72457c83d10c\\n', 'Removing intermediate container 72457c83d10c\\n', ' ---> 62fe16115ccc\\n', 'Step 8/48 : ENV LC_ALL en_US.UTF-8', '\\n', ' ---> Running in d33e1384ba91\\n', 'Removing intermediate container d33e1384ba91\\n', ' ---> 8142f9528de6\\n', 'Step 9/48 : USER root', '\\n', ' ---> Running in 7df5ac6376f5\\n', 'Removing intermediate container 7df5ac6376f5\\n', ' ---> 5f71a42bc643\\n', \"Step 10/48 : RUN dnf -y update && dnf -y install epel-release 'dnf-command(config-manager)' && dnf module -y enable 'postgresql:10' && dnf config-manager --set-enabled PowerTools && dnf -y install ansible gcc gcc-c++ gettext git-core glibc-langpack-en libcurl-devel libffi-devel libstdc++.so.6 libtool-ltdl-devel make nodejs nss openldap-devel patch @postgresql:10 postgresql-devel python3-devel python3-pip python3-psycopg2 python3-setuptools swig unzip xmlsec1-devel xmlsec1-openssl-devel\", '\\n', ' ---> Running in 96150cff5fc9\\n', '\\x1b[91m/bin/sh: warning: setlocale: LC_ALL: cannot change locale (en_US.UTF-8)\\n\\x1b[0m', 'CentOS-8 - AppStream 4.0 MB/s | 5.6 MB 00:01 \\n', 'CentOS-8 - Base 572 kB/s | 1.8 MB 00:03 \\n', 'CentOS-8 - Extras 6.0 kB/s | 5.9 kB 00:00 \\n', 'Last metadata expiration check: 0:00:01 ago on Sun May 17 14:26:50 2020.\\n', 'Dependencies resolved.\\n', '================================================================================\\n Package Arch Version Repo Size\\n================================================================================\\nUpgrading:\\n audit-libs aarch64 3.0-0.13.20190507gitf58ec40.el8 BaseOS 113 k\\n binutils aarch64 2.30-58.el8_1.2 BaseOS 6.0 M\\n centos-gpg-keys noarch 8.1-1.1911.0.9.el8 BaseOS 12 k\\n centos-release aarch64 8.1-1.1911.0.9.el8 BaseOS 21 k\\n centos-repos aarch64 8.1-1.1911.0.9.el8 BaseOS 13 k\\n coreutils-single aarch64 8.30-6.el8_1.1 BaseOS 602 k\\n glibc aarch64 2.28-72.el8_1.1 BaseOS 3.5 M\\n glibc-common aarch64 2.28-72.el8_1.1 BaseOS 790 k\\n glibc-minimal-langpack aarch64 2.28-72.el8_1.1 BaseOS 48 k\\n kexec-tools aarch64 2.0.19-12.el8_1.2 BaseOS 447 k\\n libarchive aarch64 3.3.2-8.el8_1 BaseOS 343 k\\n openldap aarch64 2.4.46-11.el8_1 BaseOS 344 k\\n openssl-libs aarch64 1:1.1.1c-2.el8_1.1 BaseOS 1.4 M\\n python3-rpm aarch64 4.14.2-26.el8_1 BaseOS 158 k\\n rpm aarch64 4.14.2-26.el8_1 BaseOS 539 k\\n rpm-build-libs aarch64 4.14.2-26.el8_1 BaseOS 147 k\\n rpm-libs aarch64 4.14.2-26.el8_1 BaseOS 323 k\\n sqlite-libs aarch64 3.26.0-4.el8_1 BaseOS 552 k\\n systemd aarch64 239-18.el8_1.5 BaseOS 3.2 M\\n systemd-libs aarch64 239-18.el8_1.5 BaseOS 514 k\\n systemd-pam aarch64 239-18.el8_1.5 BaseOS 217 k\\n systemd-udev aarch64 239-18.el8_1.5 BaseOS 1.3 M\\nInstalling dependencies:\\n xkeyboard-config noarch 2.24-3.el8 AppStream 828 k\\n kbd-legacy noarch 2.0.4-8.el8 BaseOS 481 k\\n kbd-misc noarch 2.0.4-8.el8 BaseOS 1.4 M\\n openssl aarch64 1:1.1.1c-2.el8_1.1 BaseOS 669 k\\nInstalling weak dependencies:\\n libxkbcommon aarch64 0.8.2-1.el8 AppStream 112 k\\n diffutils aarch64 3.6-5.el8 BaseOS 353 k\\n glibc-langpack-en aarch64 2.28-72.el8_1.1 BaseOS 818 k\\n kbd aarch64 2.0.4-8.el8 BaseOS 382 k\\n openssl-pkcs11 aarch64 0.4.8-2.el8 BaseOS 63 k\\n\\nTransaction Summary\\n================================================================================\\nInstall 9 Packages\\nUpgrade 22 Packages\\n\\n', 'Total download size: 25 M\\n', 'Downloading Packages:\\n', '(1/31): libxkbcommon-0.8.2-1.el8.aarch64.rpm 293 kB/s | 112 kB 00:00 \\n', '(2/31): xkeyboard-config-2.24-3.el8.noarch.rpm 1.4 MB/s | 828 kB 00:00 \\n', '(3/31): diffutils-3.6-5.el8.aarch64.rpm 511 kB/s | 353 kB 00:00 \\n', '(4/31): kbd-legacy-2.0.4-8.el8.noarch.rpm 1.2 MB/s | 481 kB 00:00 \\n', '(5/31): kbd-2.0.4-8.el8.aarch64.rpm 642 kB/s | 382 kB 00:00 \\n', '(6/31): glibc-langpack-en-2.28-72.el8_1.1.aarch 785 kB/s | 818 kB 00:01 \\n', '(7/31): openssl-pkcs11-0.4.8-2.el8.aarch64.rpm 896 kB/s | 63 kB 00:00 \\n', '(8/31): openssl-1.1.1c-2.el8_1.1.aarch64.rpm 1.5 MB/s | 669 kB 00:00 \\n', '(9/31): audit-libs-3.0-0.13.20190507gitf58ec40. 955 kB/s | 113 kB 00:00 \\n', '(10/31): centos-gpg-keys-8.1-1.1911.0.9.el8.noa 167 kB/s | 12 kB 00:00 \\n', '(11/31): centos-release-8.1-1.1911.0.9.el8.aarc 315 kB/s | 21 kB 00:00 \\n', '(12/31): centos-repos-8.1-1.1911.0.9.el8.aarch6 227 kB/s | 13 kB 00:00 \\n', '(13/31): kbd-misc-2.0.4-8.el8.noarch.rpm 1.9 MB/s | 1.4 MB 00:00 \\n', '(14/31): coreutils-single-8.30-6.el8_1.1.aarch6 1.8 MB/s | 602 kB 00:00 \\n', '(15/31): glibc-common-2.28-72.el8_1.1.aarch64.r 2.0 MB/s | 790 kB 00:00 \\n', '(16/31): glibc-minimal-langpack-2.28-72.el8_1.1 668 kB/s | 48 kB 00:00 \\n', '(17/31): kexec-tools-2.0.19-12.el8_1.2.aarch64. 1.8 MB/s | 447 kB 00:00 \\n', '(18/31): libarchive-3.3.2-8.el8_1.aarch64.rpm 1.9 MB/s | 343 kB 00:00 \\n', '(19/31): binutils-2.30-58.el8_1.2.aarch64.rpm 3.6 MB/s | 6.0 MB 00:01 \\n', '(20/31): openldap-2.4.46-11.el8_1.aarch64.rpm 1.4 MB/s | 344 kB 00:00 \\n', '(21/31): glibc-2.28-72.el8_1.1.aarch64.rpm 2.4 MB/s | 3.5 MB 00:01 \\n', '(22/31): python3-rpm-4.14.2-26.el8_1.aarch64.rp 1.7 MB/s | 158 kB 00:00 \\n', '(23/31): rpm-build-libs-4.14.2-26.el8_1.aarch64 1.7 MB/s | 147 kB 00:00 \\n', '(24/31): openssl-libs-1.1.1c-2.el8_1.1.aarch64. 4.3 MB/s | 1.4 MB 00:00 \\n', '(25/31): rpm-4.14.2-26.el8_1.aarch64.rpm 1.9 MB/s | 539 kB 00:00 \\n', '(26/31): rpm-libs-4.14.2-26.el8_1.aarch64.rpm 2.2 MB/s | 323 kB 00:00 \\n', '(27/31): sqlite-libs-3.26.0-4.el8_1.aarch64.rpm 4.0 MB/s | 552 kB 00:00 \\n', '(28/31): systemd-pam-239-18.el8_1.5.aarch64.rpm 2.3 MB/s | 217 kB 00:00 \\n', '(29/31): systemd-libs-239-18.el8_1.5.aarch64.rp 1.8 MB/s | 514 kB 00:00 \\n', '(30/31): systemd-udev-239-18.el8_1.5.aarch64.rp 4.9 MB/s | 1.3 MB 00:00 \\n', '(31/31): systemd-239-18.el8_1.5.aarch64.rpm 3.2 MB/s | 3.2 MB 00:01 \\n', '--------------------------------------------------------------------------------\\n', 'Total 5.4 MB/s | 25 MB 00:04 \\n', '\\x1b[91mwarning: /var/cache/dnf/AppStream-37e43cd1a3e4f490/packages/libxkbcommon-0.8.2-1.el8.aarch64.rpm: Header V3 RSA/SHA256 Signature, key ID 8483c65d: NOKEY\\n\\x1b[0m', 'CentOS-8 - AppStream 8.9 kB/s | 1.6 kB 00:00 \\n', '\\x1b[91mFailed to set locale, defaulting to C.UTF-8\\nImporting GPG key 0x8483C65D:\\n Userid : \"CentOS (CentOS Official Signing Key) <[email protected]>\"\\n Fingerprint: 99DB 70FA E1D7 CE22 7FB6 4882 05B5 55B3 8483 C65D\\n From : /etc/pki/rpm-gpg/RPM-GPG-KEY-centosofficial\\n\\x1b[0m', 'Key imported successfully\\n', 'Running transaction check\\n', 'Transaction check succeeded.\\n', 'Running transaction test\\n', 'Transaction test succeeded.\\n', 'Running transaction\\n', ' Preparing : 1/1', ' \\n Running scriptlet: centos-gpg-keys-8.1-1.1911.0.9.el8.noarch 1/1', ' \\n Upgrading : centos-gpg-keys-8.1-1.1911.0.9.el8.noarch 1/53', ' \\n Upgrading : centos-release-8.1-1.1911.0.9.el8.aarch64 2/53', ' \\n Upgrading : centos-repos-8.1-1.1911.0.9.el8.aarch64 3/53', ' \\n Upgrading : glibc-common-2.28-72.el8_1.1.aarch64 4/53', ' \\n Running scriptlet: glibc-2.28-72.el8_1.1.aarch64 5/53', ' \\n Upgrading : glibc-2.28-72.el8_1.1.aarch64 5/53', ' \\n Running scriptlet: glibc-2.28-72.el8_1.1.aarch64 5/53', ' \\n Installing : glibc-langpack-en-2.28-72.el8_1.1.aarch64 6/53', ' \\n Upgrading : coreutils-single-8.30-6.el8_1.1.aarch64 7/53', ' \\n Upgrading : audit-libs-3.0-0.13.20190507gitf58ec40.el8.aarch64 8/53', ' \\n Installing : openssl-1:1.1.1c-2.el8_1.1.aarch64 9/53', ' \\n Installing : openssl-pkcs11-0.4.8-2.el8.aarch64 10/53', ' \\n Running scriptlet: openssl-pkcs11-0.4.8-2.el8.aarch64 10/53', ' \\n Upgrading : openssl-libs-1:1.1.1c-2.el8_1.1.aarch64 11/53', ' \\n Running scriptlet: openssl-libs-1:1.1.1c-2.el8_1.1.aarch64 11/53', ' \\n Upgrading : libarchive-3.3.2-8.el8_1.aarch64 12/53', ' \\n Upgrading : rpm-4.14.2-26.el8_1.aarch64 13/53', ' \\n Upgrading : rpm-libs-4.14.2-26.el8_1.aarch64 14/53', ' \\n Running scriptlet: rpm-libs-4.14.2-26.el8_1.aarch64 14/53', ' \\n Upgrading : rpm-build-libs-4.14.2-26.el8_1.aarch64 15/53', ' \\n Running scriptlet: rpm-build-libs-4.14.2-26.el8_1.aarch64 15/53', ' \\n Upgrading : systemd-libs-239-18.el8_1.5.aarch64 16/53', ' \\n Running scriptlet: systemd-libs-239-18.el8_1.5.aarch64 16/53', ' \\n Installing : diffutils-3.6-5.el8.aarch64 17/53', ' \\n Running scriptlet: diffutils-3.6-5.el8.aarch64 17/53', ' \\n Installing : kbd-misc-2.0.4-8.el8.noarch 18/53', ' \\n Installing : kbd-legacy-2.0.4-8.el8.noarch 19/53', ' \\n Installing : kbd-2.0.4-8.el8.aarch64 20/53', ' \\n Installing : xkeyboard-config-2.24-3.el8.noarch 21/53', ' \\n Installing : libxkbcommon-0.8.2-1.el8.aarch64 22/53', ' \\n Upgrading : systemd-pam-239-18.el8_1.5.aarch64 23/53', ' \\n Running scriptlet: systemd-239-18.el8_1.5.aarch64 24/53', ' \\n Upgrading : systemd-239-18.el8_1.5.aarch64 24/53', ' \\n Running scriptlet: systemd-239-18.el8_1.5.aarch64 24/53', ' \\n Upgrading : kexec-tools-2.0.19-12.el8_1.2.aarch64 25/53', ' \\n Running scriptlet: kexec-tools-2.0.19-12.el8_1.2.aarch64 25/53', ' \\n Upgrading : systemd-udev-239-18.el8_1.5.aarch64 26/53', ' \\n Running scriptlet: systemd-udev-239-18.el8_1.5.aarch64 26/53', ' \\n Upgrading : python3-rpm-4.14.2-26.el8_1.aarch64 27/53', ' \\n Upgrading : openldap-2.4.46-11.el8_1.aarch64 28/53', ' \\n Upgrading : binutils-2.30-58.el8_1.2.aarch64 29/53', ' \\n Running scriptlet: binutils-2.30-58.el8_1.2.aarch64 29/53', ' \\n Upgrading : glibc-minimal-langpack-2.28-72.el8_1.1.aarch64 30/53', ' \\n Upgrading : sqlite-libs-3.26.0-4.el8_1.aarch64 31/53', ' \\n Cleanup : python3-rpm-4.14.2-25.el8.aarch64 32/53', ' \\n Cleanup : rpm-build-libs-4.14.2-25.el8.aarch64 33/53', ' \\n Running scriptlet: rpm-build-libs-4.14.2-25.el8.aarch64 33/53', ' \\n Cleanup : rpm-4.14.2-25.el8.aarch64 34/53', ' \\n Cleanup : rpm-libs-4.14.2-25.el8.aarch64 35/53', ' \\n Running scriptlet: rpm-libs-4.14.2-25.el8.aarch64 35/53', ' \\n Cleanup : systemd-udev-239-18.el8_1.1.aarch64 36/53', ' \\n Running scriptlet: systemd-udev-239-18.el8_1.1.aarch64 36/53', ' \\n Cleanup : openldap-2.4.46-10.el8.aarch64 37/53', ' \\n Running scriptlet: kexec-tools-2.0.19-12.el8_1.1.aarch64 38/53', ' \\n Cleanup : kexec-tools-2.0.19-12.el8_1.1.aarch64 38/53', ' \\n Running scriptlet: kexec-tools-2.0.19-12.el8_1.1.aarch64 38/53', ' \\n Running scriptlet: systemd-239-18.el8_1.1.aarch64 39/53', ' \\n Cleanup : systemd-239-18.el8_1.1.aarch64 39/53', ' \\n Cleanup : systemd-libs-239-18.el8_1.1.aarch64 40/53', ' \\n Cleanup : sqlite-libs-3.26.0-3.el8.aarch64 41/53', ' \\n Cleanup : systemd-pam-239-18.el8_1.1.aarch64 42/53', ' \\n Running scriptlet: binutils-2.30-58.el8.0.1.aarch64 43/53', ' \\n Cleanup : binutils-2.30-58.el8.0.1.aarch64 43/53', ' \\n Running scriptlet: binutils-2.30-58.el8.0.1.aarch64 43/53', ' \\n Cleanup : centos-release-8.1-1.1911.0.8.el8.aarch64 44/53', ' \\n Cleanup : coreutils-single-8.30-6.el8.aarch64 45/53', ' \\n Cleanup : libarchive-3.3.2-7.el8.aarch64 46/53', ' \\n Cleanup : openssl-libs-1:1.1.1c-2.el8.aarch64 47/53', ' \\n Running scriptlet: openssl-libs-1:1.1.1c-2.el8.aarch64 47/53', ' \\n Cleanup : audit-libs-3.0-0.10.20180831git0047a6c.el8.aarch64 48/53', ' \\n Cleanup : centos-repos-8.1-1.1911.0.8.el8.aarch64 49/53', ' \\n Cleanup : glibc-2.28-72.el8.aarch64 50/53', ' \\n Cleanup : glibc-minimal-langpack-2.28-72.el8.aarch64 51/53', ' \\n Cleanup : centos-gpg-keys-8.1-1.1911.0.8.el8.noarch 52/53', ' \\n Cleanup : glibc-common-2.28-72.el8.aarch64 53/53', ' \\n Running scriptlet: glibc-common-2.28-72.el8.aarch64 53/53', ' \\n Running scriptlet: glibc-common-2.28-72.el8_1.1.aarch64 53/53', ' \\n Running scriptlet: systemd-239-18.el8_1.5.aarch64 53/53', ' \\n Running scriptlet: systemd-udev-239-18.el8_1.5.aarch64 53/53', ' \\n Verifying : libxkbcommon-0.8.2-1.el8.aarch64 1/53', ' \\n Verifying : xkeyboard-config-2.24-3.el8.noarch 2/53', ' \\n Verifying : diffutils-3.6-5.el8.aarch64 3/53', ' \\n Verifying : glibc-langpack-en-2.28-72.el8_1.1.aarch64 4/53', ' \\n Verifying : kbd-2.0.4-8.el8.aarch64 5/53', ' \\n Verifying : kbd-legacy-2.0.4-8.el8.noarch 6/53', ' \\n Verifying : kbd-misc-2.0.4-8.el8.noarch 7/53', ' \\n Verifying : openssl-1:1.1.1c-2.el8_1.1.aarch64 8/53', ' \\n Verifying : openssl-pkcs11-0.4.8-2.el8.aarch64 9/53', ' \\n Verifying : audit-libs-3.0-0.13.20190507gitf58ec40.el8.aarch64 10/53', ' \\n Verifying : audit-libs-3.0-0.10.20180831git0047a6c.el8.aarch64 11/53', ' \\n Verifying : binutils-2.30-58.el8_1.2.aarch64 12/53', ' \\n Verifying : binutils-2.30-58.el8.0.1.aarch64 13/53', ' \\n Verifying : centos-gpg-keys-8.1-1.1911.0.9.el8.noarch 14/53', ' \\n Verifying : centos-gpg-keys-8.1-1.1911.0.8.el8.noarch 15/53', ' \\n Verifying : centos-release-8.1-1.1911.0.9.el8.aarch64 16/53', ' \\n Verifying : centos-release-8.1-1.1911.0.8.el8.aarch64 17/53', ' \\n Verifying : centos-repos-8.1-1.1911.0.9.el8.aarch64 18/53', ' \\n Verifying : centos-repos-8.1-1.1911.0.8.el8.aarch64 19/53', ' \\n Verifying : coreutils-single-8.30-6.el8_1.1.aarch64 20/53', ' \\n Verifying : coreutils-single-8.30-6.el8.aarch64 21/53', ' \\n Verifying : glibc-2.28-72.el8_1.1.aarch64 22/53', ' \\n Verifying : glibc-2.28-72.el8.aarch64 23/53', ' \\n Verifying : glibc-common-2.28-72.el8_1.1.aarch64 24/53', ' \\n Verifying : glibc-common-2.28-72.el8.aarch64 25/53', ' \\n Verifying : glibc-minimal-langpack-2.28-72.el8_1.1.aarch64 26/53', ' \\n Verifying : glibc-minimal-langpack-2.28-72.el8.aarch64 27/53', ' \\n Verifying : kexec-tools-2.0.19-12.el8_1.2.aarch64 28/53', ' \\n Verifying : kexec-tools-2.0.19-12.el8_1.1.aarch64 29/53', ' \\n Verifying : libarchive-3.3.2-8.el8_1.aarch64 30/53', ' \\n Verifying : libarchive-3.3.2-7.el8.aarch64 31/53', ' \\n Verifying : openldap-2.4.46-11.el8_1.aarch64 32/53', ' \\n Verifying : openldap-2.4.46-10.el8.aarch64 33/53', ' \\n Verifying : openssl-libs-1:1.1.1c-2.el8_1.1.aarch64 34/53', ' \\n Verifying : openssl-libs-1:1.1.1c-2.el8.aarch64 35/53', ' \\n Verifying : python3-rpm-4.14.2-26.el8_1.aarch64 36/53', ' \\n Verifying : python3-rpm-4.14.2-25.el8.aarch64 37/53', ' \\n Verifying : rpm-4.14.2-26.el8_1.aarch64 38/53', ' \\n Verifying : rpm-4.14.2-25.el8.aarch64 39/53', ' \\n Verifying : rpm-build-libs-4.14.2-26.el8_1.aarch64 40/53', ' \\n Verifying : rpm-build-libs-4.14.2-25.el8.aarch64 41/53', ' \\n Verifying : rpm-libs-4.14.2-26.el8_1.aarch64 42/53', ' \\n Verifying : rpm-libs-4.14.2-25.el8.aarch64 43/53', ' \\n Verifying : sqlite-libs-3.26.0-4.el8_1.aarch64 44/53', ' \\n Verifying : sqlite-libs-3.26.0-3.el8.aarch64 45/53', ' \\n Verifying : systemd-239-18.el8_1.5.aarch64 46/53', ' \\n Verifying : systemd-239-18.el8_1.1.aarch64 47/53', ' \\n Verifying : systemd-libs-239-18.el8_1.5.aarch64 48/53', ' \\n Verifying : systemd-libs-239-18.el8_1.1.aarch64 49/53', ' \\n Verifying : systemd-pam-239-18.el8_1.5.aarch64 50/53', ' \\n Verifying : systemd-pam-239-18.el8_1.1.aarch64 51/53', ' \\n Verifying : systemd-udev-239-18.el8_1.5.aarch64 52/53', ' \\n Verifying : systemd-udev-239-18.el8_1.1.aarch64 53/53', ' \\n\\nUpgraded:\\n audit-libs-3.0-0.13.20190507gitf58ec40.el8.aarch64 \\n binutils-2.30-58.el8_1.2.aarch64 \\n centos-gpg-keys-8.1-1.1911.0.9.el8.noarch \\n centos-release-8.1-1.1911.0.9.el8.aarch64 \\n centos-repos-8.1-1.1911.0.9.el8.aarch64 \\n coreutils-single-8.30-6.el8_1.1.aarch64 \\n glibc-2.28-72.el8_1.1.aarch64 \\n glibc-common-2.28-72.el8_1.1.aarch64 \\n glibc-minimal-langpack-2.28-72.el8_1.1.aarch64 \\n kexec-tools-2.0.19-12.el8_1.2.aarch64 \\n libarchive-3.3.2-8.el8_1.aarch64 \\n openldap-2.4.46-11.el8_1.aarch64 \\n openssl-libs-1:1.1.1c-2.el8_1.1.aarch64 \\n python3-rpm-4.14.2-26.el8_1.aarch64 \\n rpm-4.14.2-26.el8_1.aarch64 \\n rpm-build-libs-4.14.2-26.el8_1.aarch64 \\n rpm-libs-4.14.2-26.el8_1.aarch64 \\n sqlite-libs-3.26.0-4.el8_1.aarch64 \\n systemd-239-18.el8_1.5.aarch64 \\n systemd-libs-239-18.el8_1.5.aarch64 \\n systemd-pam-239-18.el8_1.5.aarch64 \\n systemd-udev-239-18.el8_1.5.aarch64 \\n\\nInstalled:\\n libxkbcommon-0.8.2-1.el8.aarch64 diffutils-3.6-5.el8.aarch64 \\n glibc-langpack-en-2.28-72.el8_1.1.aarch64 kbd-2.0.4-8.el8.aarch64 \\n openssl-pkcs11-0.4.8-2.el8.aarch64 xkeyboard-config-2.24-3.el8.noarch \\n kbd-legacy-2.0.4-8.el8.noarch kbd-misc-2.0.4-8.el8.noarch \\n openssl-1:1.1.1c-2.el8_1.1.aarch64 \\n\\n', 'Complete!\\n', 'Last metadata expiration check: 0:00:42 ago on Sun 17 May 2020 02:26:50 PM UTC.\\n', 'Dependencies resolved.\\n', '================================================================================\\n Package Arch Version Repository Size\\n================================================================================\\nInstalling:\\n dnf-plugins-core noarch 4.0.8-3.el8 BaseOS 62 k\\n epel-release noarch 8-8.el8 extras 23 k\\nInstalling dependencies:\\n python3-dateutil noarch 1:2.6.1-6.el8 BaseOS 251 k\\n python3-dnf-plugins-core noarch 4.0.8-3.el8 BaseOS 193 k\\n python3-six noarch 1.11.0-8.el8 BaseOS 38 k\\n\\nTransaction Summary\\n================================================================================\\nInstall 5 Packages\\n\\n', 'Total download size: 567 k\\n', 'Installed size: 1.3 M\\n', 'Downloading Packages:\\n', '(1/5): dnf-plugins-core-4.0.8-3.el8.noarch.rpm 239 kB/s | 62 kB 00:00 \\n', '(2/5): python3-six-1.11.0-8.el8.noarch.rpm 337 kB/s | 38 kB 00:00 \\n', '(3/5): epel-release-8-8.el8.noarch.rpm 210 kB/s | 23 kB 00:00 \\n', '(4/5): python3-dnf-plugins-core-4.0.8-3.el8.noa 386 kB/s | 193 kB 00:00 \\n', '(5/5): python3-dateutil-2.6.1-6.el8.noarch.rpm 492 kB/s | 251 kB 00:00 \\n', '--------------------------------------------------------------------------------\\n', 'Total 633 kB/s | 567 kB 00:00 \\n', 'Running transaction check\\n', 'Transaction check succeeded.\\n', 'Running transaction test\\n', 'Transaction test succeeded.\\n', 'Running transaction\\n', ' Preparing : 1/1', ' \\n Installing : python3-six-1.11.0-8.el8.noarch 1/5', ' \\n Installing : python3-dateutil-1:2.6.1-6.el8.noarch 2/5', ' \\n Installing : python3-dnf-plugins-core-4.0.8-3.el8.noarch 3/5', ' \\n Installing : dnf-plugins-core-4.0.8-3.el8.noarch 4/5', ' \\n Installing : epel-release-8-8.el8.noarch 5/5', ' \\n Running scriptlet: epel-release-8-8.el8.noarch 5/5', ' \\n Verifying : dnf-plugins-core-4.0.8-3.el8.noarch 1/5', ' \\n Verifying : python3-dateutil-1:2.6.1-6.el8.noarch 2/5', ' \\n Verifying : python3-dnf-plugins-core-4.0.8-3.el8.noarch 3/5', ' \\n Verifying : python3-six-1.11.0-8.el8.noarch 4/5', ' \\n Verifying : epel-release-8-8.el8.noarch 5/5', ' \\n\\nInstalled:\\n dnf-plugins-core-4.0.8-3.el8.noarch \\n epel-release-8-8.el8.noarch \\n python3-dateutil-1:2.6.1-6.el8.noarch \\n python3-dnf-plugins-core-4.0.8-3.el8.noarch \\n python3-six-1.11.0-8.el8.noarch \\n\\n', 'Complete!\\n', 'Extra Packages for Enterprise Linux Modular 8 - 138 kB/s | 116 kB 00:00 \\n', 'Extra Packages for Enterprise Linux 8 - aarch64 4.2 MB/s | 6.4 MB 00:01 \\n', 'Dependencies resolved.\\n', '===========
=====================================================================\\n Package Architecture Version Repository Size\\n================================================================================\\nEnabling module streams:\\n postgresql 10 \\n\\nTransaction Summary\\n================================================================================\\n\\n', 'Complete!\\n', 'CentOS-8 - AppStream 16 kB/s | 4.3 kB 00:00 \\n', 'CentOS-8 - Base 17 kB/s | 3.9 kB 00:00 \\n', 'CentOS-8 - Extras 7.6 kB/s | 1.5 kB 00:00 \\n', 'CentOS-8 - PowerTools 1.7 MB/s | 1.5 MB 00:00 \\n', 'Extra Packages for Enterprise Linux Modular 8 - 54 kB/s | 19 kB 00:00 \\n', 'Extra Packages for Enterprise Linux 8 - aarch64 39 kB/s | 12 kB 00:00 \\n', 'Package glibc-langpack-en-2.28-72.el8_1.1.aarch64 is already installed.\\n', 'No match for argument: libstdc++.so.6\\n', '\\x1b[91mError: Unable to find a match: libstdc++.so.6\\n\\x1b[0m', 'Removing intermediate container 96150cff5fc9\\n']"}
Unable to find a match: libstdc++.so.6 seems to be the error
Would love to get some ideas for this! Not sure the next steps for this error...
Tactical dot, I would also like to see AWX running on my PI's. I'll take a look at the weekend.
I did a docker run -it centos:8 on my pi and searched dnf and found libstdc++.aarch64 im way out of my knowlege here but im gonna try to swap that out in the Dockerfile.j2 and see if that works!
Ok so swapping out libstdc++.so.6 with libstdc++.aarch64 worked! Now its getting stuck on this line: dnf -y install https://github.com/krallin/tini/releases/download/v0.18.0/tini_0.18.0.rpm && \
I looked up tini and it has arm images... so im not sure why its not able to install it... heres the error:
Error:
Problem: conflicting requests
- package tini-0.18.0-1.x86_64 does not have a compatible architecture
- nothing provides libc.so.6(GLIBC_2.2.5)(64bit) needed by tini-0.18.0-1.x86_64
- nothing provides libc.so.6(GLIBC_2.3.4)(64bit) needed by tini-0.18.0-1.x86_64
And i found an issue on tini talking about the arm support https://github.com/krallin/tini/issues/140
@kevindurb - See related issue in this repository: https://github.com/ansible/awx/issues/2502
@geerlingguy i spent some more time on this a couple weeks back and got tini replaced but there鈥檚 more... I鈥檒l see if i can get the next set of errors posted soon. If you鈥檙e interested I started a fork with the experimental changes https://github.com/kevindurb/awx
@kevindurb - That's awesome! Seeing that the Pi 4 now comes in an 8GB version, there's finally enough RAM available to comfortably run AWX on ARM. And it would be even more awesome if this feature could make it into the main branch (and get multi-arch builds for the AWX images) before Apple Silicon makes its way into the first Macs, so AWX could easily be run on Macs natively.
Also, suggested title change: "ARM64/aarch64 support (Raspberry Pi 4 and Apple Silicon)"
Glad to see progress here!
I've made a fair amount of progress on this over the past few days. Using @kevindurb 's research as a base, I have a working branch with the following changes:
chromedriver for ARM supportpynacl to resolve an issue running tests for libsodium on ARMlibstdc++ package namekubectl and tini from upstream binaries instead of RPMkubernetes role around setting the kubernetes_awx_image var when building custom imagesI'm still working through issues, but it seems like I'm pretty close to having something working. I also still need to clean up my branch to properly support both AMD64 and ARM64 at the same time.
I created PR #7607 with my changes. This produces "working" (running) AWX images and allowed the installer playbook to complete successfully. I haven't actually meaningfully tested the deployed AWX instance yet.
@agaffney is there something special one has to do to get this working or should it work out of the box? I tried deploying this to my k8s cluster now but got exec format error for awx ansible-tower-management
Thanks
You will need to build your own images. The default images are built for x86_64.
Most helpful comment
I've made a fair amount of progress on this over the past few days. Using @kevindurb 's research as a base, I have a working branch with the following changes:
chromedriverfor ARM supportpynaclto resolve an issue running tests forlibsodiumon ARMlibstdc++package namekubectlandtinifrom upstream binaries instead of RPMkubernetesrole around setting thekubernetes_awx_imagevar when building custom imagesI'm still working through issues, but it seems like I'm pretty close to having something working. I also still need to clean up my branch to properly support both AMD64 and ARM64 at the same time.