Contributing note: These instructions assume Rocky Linux 9.x (tested on Rocky 9.5). Using Rocky 9 is recommended for contributors, but you can adapt the steps for other operating systems — adjust package manager and service commands as needed.
dnf update -y; reboot
dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
systemctl enable docker
systemctl start docker
ln -s /usr/libexec/docker/cli-plugins/docker-compose /usr/bin/docker-compose
dnf install -y git make ansible-core npm
https://github.com/settings/keys
git clone git@github.com:ctrliq/ascender.git
systemctl stop firewalld
systemctl disable firewalld
API runs on 8043 so https://ip:8043/api/
cat << EOF > ~/start_containers.sh
#!/bin/bash
cd ascender
export RECEPTOR_IMAGE=quay.io/ansible/receptor:v1.4.9
make docker-compose-build
make docker-compose
EOF
cat << EOF > ~/start_npm.sh
#!/bin/bash
cd ascender
#npm --prefix=awx/ui install
# If using openssl-3.0.7 or earlier, uncomment the next line and comment out the one after it.
export NODE_OPTIONS=--openssl-legacy-provider; npm --prefix=awx/ui start
#npm --prefix=awx/ui start
EOF
chmod +x ~/start_containers.sh
chmod +x ~/start_npm.sh
You will need to start the containers, and then once they are up, start npm in a new terminal window.
When starting containers, after migrations are done, it will randomly generate a password for the admin user, you will see it in the logs. If you change the password, it will still state in the logs that the password is the randomly generated one, but your new one will be the actual one to work.
tools_awx_1 | Applying social_django.0015_rename_extra_data_new_usersocialauth_extra_data... OK
tools_awx_1 | Applying social_django.0016_alter_usersocialauth_extra_data... OK
tools_awx_1 | Applying sso.0001_initial... OK
tools_awx_1 | Applying sso.0002_expand_provider_options... OK
tools_awx_1 | Applying sso.0003_convert_saml_string_to_list... OK
tools_awx_1 | Superuser created successfully.
tools_awx_1 | Admin password: vHwSodfHzdssZwQduUrAYMn
The default user is "admin".
Once the npm server is running, you can then login to Ascender at the IP/port provided
When you have python packages to update due to upstream or dependency CVE remediation, use the following procedure:
- Checkout the
mainbranch in your docker environment - From there, create a new branch to handle the CVE changes
- Start the containers using
./start_containers.sh - Login to the ascender web container using
docker exec -it tools_awx_1 /bin/bash - Change to the
requirementsdirectory and updaterequirements.in - While still in the container, run the
./updates.sh runcommand to update therequirements.txt - Exit the container
- Check the
Makefilein the root of the ascender repo for required changes that align with your changes in requirements.in (for setuptools, etc...) - Shutdown your
./start_containers.shscript by breaking out of the shell usingctrl-C - Restart the
./start_containers.shand once restarted, check for fatal errors, and perform a UI regression test.
When you have npm packages to update due to upstream or dependency CVE remediation, use the following procedure:
- Checkout the
mainbranch in your docker environment - From there, create a new branch to handle the CVE changes
- Start the containers using
./start_containers.sh - Before starting the user interface using
./start_npm.sh, login to the web container and goto theawx/uidirectory and update thepackage.jsonfile with the new package requirements - Run
npm audit fixto see if there are any other security changes to be made as a result of the updated packages. - If that runs clean, start the user interface using
./start_npm.sh - Check for startup errors and run your regressions
- Once changes are verified good, commit your changes to the branch you created in step 2.
- Create a pull request to
main
- start the containers
- do not start npm
- enter the
tools_awx_1container cd tools/docker-compose./start_tests.sh test_coverage