Before running the setup scripts, upload the required resources, make the airgap server accessible to the Internet, and install the required packages for running the scripts.


  1. Upload the resources airgap tarball: After the virtual machine is powered on, set up the eth0 network. This procedure ensures that the virtual machine is accessible from the system downloading the airgap tarball. Set up either DHCP or a static IP address in the guest operating system. The network settings depend on your network topology and environment settings. Upload the tarball file to the airgap server virtual machine through a secured channel such as the SCP command with Putty for Windows or Terminal for Linux or Mac operating systems.
    [~]$ scp VMware-Telco-Cloud-Automation-airgap-files-2.0.0-<build-number>.tar.gz root@<airgap-server-ip>:/root/
    You can now log in to the airgap server through SSH and extract the contents to its root folder. For example:
    [~]$ ssh root@<airgap server ip>
    Welcome to Photon 3.0 (x86_64) - Kernel \r (\l)
    root@<airgap server ip>'s password:
    Last login: Fri Nov 19 06:51:50 2021 from
     06:41:01 up 24 days,  6:22,  2 users,  load average: 0.00, 0.00, 0.00
    182 Security notice(s)
    Run 'tdnf updateinfo info' to see the details.
    root@photon-machine [ ~ ]# ls
    root@photon-machine [ ~ ]# tar xfz VMware-Telco-Cloud-Automation-airgap-files-2.0.0-<build-number>.tar.gz
    root@photon-machine [ ~ ]# ls
    VMware-Telco-Cloud-Automation-airgap-files-2.0.0-<build-number>.tar.gz airgap
    root@photon-machine [ ~ ]# ls airgap
    bom scripts
    Note: If you are setting up the airgap server on both VMware Telco Cloud Automation version 1.9.5 and version 2.0.0, then download the 1.9.5 airgap BOM tarball from the VMware Customer Connect site. Upload, extract, and copy the BOM files into the target BOM folder.
    The BOM folder contains all the BOM files for describing the container images. The Scripts folder contains scripts used for setting up and deploying the airgap server.
    Certificates: (Optional) If you use your own certificate, upload its relevant files into the /roots/certs folder. You can also use scripts for generating the certificate at runtime.
  2. Set up the network for Internet.
    Ensure that your airgap virtual machine is accessible to the Internet. If you use a proxy server, run the following script:
    root@photon-machine [ ~ ]# . airgap/scripts/bin/ <proxy-sever-url> <airgap-server-fqdn>,<local-subnet>
    For example:
    root@photon-machine [ ~ ]# . airgap/scripts/bin/,
    The script contains two parameters:
    • proxy-sever-url - The proxy server URL.
    • airgap-server-fqdn, local-subnet - Comma-separated exclusion list of networks for bypassing proxy.
      Note: To avoid Harbor image publishing failure, ensure that airgap server FQDN and local network are added to the no_proxy list.
    If your environment uses other approaches to access the Internet, configure your network infrastructure to ensure that Internet is accessible.
    To verify that the airgap virtual machine can access the required Internet resources, run the following commands:
    curl --head
    curl --head
    curl --head
    curl --head
    These commands must return 200 OK, which ensures that your network is ready.
  3. Install Ansible Playbook.
    root@photon-machine [ ~ ]tdnf update
    root@photon-machine [ ~ ]tdnf install ansible.noarch -y
    If Ansible Playbook fails to install, verify whether the airgap server can access the Internet.
  4. Prepare the user-inputs.yml file.
    Set the airgap server up as a template and then deploy a customized airgap server using this template. The setup YAML files are available at airgap/scripts/vars/. The airgap/scripts/vars/user-inputs.yml file contains user-defined variables that specify the parameters for setting up the airgap server. Two examples are provided in the vars folder for this purpose. Use the setup-user-inputs.yml as a template and add your variables.
    root@photon-machine [ ~/airgap/scripts/vars ]# ls
    deploy-user-inputs.yml setup-user-inputs.yml
    root@photon-machine [ ~/airgap/scripts/vars ]# cp setup-user-inputs.yml user-inputs.yml
    root@photon-machine [ ~/airgap/scripts/vars ]# vi user-inputs.yml
    The user-inputs.yml file contains input parameter descriptions. You can change these values according to your environment.
  5. Run the setup.yml Ansible Playbook.
    root@photon-machine [ ~/airgap ]# ansible-playbook scripts/setup.yml > ansible.log 2>&1 &
    root@photon-machine [ ~/airgap ]# tail -f ansible.log
    Ansible Playbook takes around three hours to run, depending on your network speed, and you can view the log file to monitor progress. If there is an error, run Ansible Playbook again with the same command.