How to use the pro-airgapped-server charm
Follow these steps to deploy and use the pro-airgapped-server charm
in an airgapped environment:
-
Choose the Ubuntu Pro contract tokens you will use offline on your Pro dashboard. This is the only action you will do on a non-airgapped machine.
-
Set up the mirrors of the APT repos inside the airgapped environment. It is beyond the scope of this doc to explain how to do this, but we suggest, without warranty or support of any kind,
apt-mirror. After mirrors are set up, spin up the server(s) on the airgapped machine to serve the mirrored repositories. In this how-to, we assume you plan to useesm-infra. -
Deploy the charm in the airgapped machine:
juju deploy pro-airgapped-server -
The deployed application will expectedly be in the “Blocked” state. If the airgapped machine has access to the Internet at that moment, provide Ubuntu Pro contract tokens which the Pro client will use later:
juju config pro-airgapped-server pro-tokens=C14LZCAxz36w6Nh5EQDuD6cmNKtwWnAlternatively, if the machine has no access to the Internet at that moment, you should add the
ppa:yellow/ua-airgappedAPT repository to your local, non-airgapped, machine, install & run thepro-airgappedcommand manually and base64-encode the output. This string should be passed asmanual-server-config:# On non-airgapped machine: B64_MANUAL_SERVER_CONFIG=$(echo 'C14LZCAxz36w6Nh5EQDuD6cmNKtwWn:' | pro-airgapped | base64)Copy the
B64_MANUAL_SERVER_CONFIGvariable value and run on an airgapped machine:# On airgapped machine: juju config pro-airgapped-server manual-server-config=$B64_MANUAL_SERVER_CONFIG -
The application should now be in the “Ready” state. However, the contracts server points to Canonical-hosted entitlements, not the mirrored ones. Suppose you have set up mirrors to serve
esm-infraonhttp://192.168.123.99:9071. To tell the contracts server to point to this mirror, set up the config the following way:juju config pro-airgapped-server entitlements-url-map='{"esm-infra": {"aptURL": "http://192.168.123.99:9071"}}' -
The airgapped Pro backend server charm has been successfully set up! You only need to configure the Pro client to point to the airgapped instance of Pro backend. Update the
/etc/ubuntu-advantage/uaclient.conffile’s directivecontract_urlto use the IP of thepro-airgapped-serverunit with the configured port (default:8484). -
Run
sudo pro refreshto update the Pro client config. And finally, attach the contract token you have configured in the charm:sudo pro attach C14LZCAxz36w6Nh5EQDuD6cmNKtwWnWith the proper server config and correctly configured mirrors, attaching succeeds.