Skip to content

Installation

Greg Harvey edited this page Jan 15, 2025 · 8 revisions

Choose a controller

Firstly, decide where you want your Ansible "control node" to be - this could be anywhere, any server or computer, even your desktop machine or a container! This "control node" will be the machine that will carry out all of your Ansible orchestration against other "managed nodes" or "targets". So think carefully before deciding where your "control node" will be - it will need access to all the servers you expect it to manage, and access to the Internet if it needs to make calls to cloud provider APIs for service orchestration.

Steps for a cloud provider

The most common approach will be to place your controller at a cloud provider somewhere on the Internet. It could really be literally anybody, here's a list of cloud providers on Wikipedia.

  1. Login to your cloud provider account and follow their instructions to create a new server with the latest Debian base image
    • Important - your server will need to have a static IP address, if you are using a service like AWS be sure to create and assign a static address (for AWS see our guide)
  2. Note the IP address of the new server and create two DNS entries with your DNS provider:
    • An A record pointing the hostname (e.g. controller.acme.com) to the IP address
    • (Optional) a CNAME record pointing a subdomain for GitLab (e.g. gitlab.controller.acme.com) to your A record
  3. Wait for your DNS records to propagate (become live - you can use a DNS checker)
  4. Once your DNS records are live and your server has provisioned, login to the server via SSH or a browser-based terminal to continue

Other installation options here.

Installing ce-provision

Once you have your Debian (latest) machine up and running and you've logged in, run the following command to download and execute our one-time install script for ce-provision - be sure to make --hostname and the --gitlab address match your DNS entries above:

curl -LO https://raw.githubusercontent.com/codeenigma/ce-provision/2.x/install.sh && sudo /bin/sh install.sh --hostname controller.acme.com --letsencrypt --gitlab gitlab.controller.acme.com

This can also be used to update GitLab and ce-provision. You can find out more about the available options with /bin/sh install.sh -h. If you intend to take advantage of AWS integration, be sure to add the --aws option.