Awx: ARM64/Aarch64 Support (Raspberry Pi4)

Created on 17 May 2020  路  17Comments  路  Source: ansible/awx

ISSUE TYPE
  • Feature Idea
SUMMARY

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!

enhancement

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:

  • upgrade chromedriver for ARM support
  • upgrade pynacl to resolve an issue running tests for libsodium on ARM
  • change the libstdc++ package name
  • install kubectl and tini from upstream binaries instead of RPM
  • fix some logic in the kubernetes role around setting the kubernetes_awx_image var when building custom images
  • change the images used for the postgres helm chart to ones with ARM support

I'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.

All 17 comments

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:

  • upgrade chromedriver for ARM support
  • upgrade pynacl to resolve an issue running tests for libsodium on ARM
  • change the libstdc++ package name
  • install kubectl and tini from upstream binaries instead of RPM
  • fix some logic in the kubernetes role around setting the kubernetes_awx_image var when building custom images
  • change the images used for the postgres helm chart to ones with ARM support

I'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.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

gamuniz picture gamuniz  路  3Comments

grahamn-gr picture grahamn-gr  路  3Comments

cs35-owncloud picture cs35-owncloud  路  3Comments

pebbledavec picture pebbledavec  路  3Comments

astraios picture astraios  路  3Comments