Skip to content
This repository was archived by the owner on Oct 7, 2025. It is now read-only.

Infrastructure repository

Greg Harvey edited this page Jan 14, 2025 · 11 revisions

The way we usually manage "infrastructures", which are logically separate sets of servers and services with a cloud or hosting provider, is by keeping playbooks and variables unique to the elements of that infrastructure in its own Git repository, typically on the controller server.

  1. In a web browser go to your GitLab installation, for example https://gitlab.controller.acme.com/, and login - instructions here, step 3
  2. Click on Groups on the left menu
  3. Click the New group button on the right, then Create group
    • we recommend you name it Infras and leave it private - this is where we will store our "infra" repositories
  4. On the next page click New project -> Create a blank project
    • we recommend you name it something sensible and recognisable, beginning with infra, leave it private and do not create a README
    • for this example we will use infra-main-website

At this point you should have a new repository at https://gitlab.controller.acme.com/infras/infra-main-website (obviously with your controller server URL, not our example one).

Seeding your infra repository.

We have a template repository for an AWS account.

Create a GitLab runner

Before we can orchestrate any builds on our server we need to create a runner.

TODO - move this

Your options are pretty limitless, so we will focus on two main areas:

  • How to build your first remote server using ce-provision
  • How to configure ce-provision to manage your AWS account(s)

Configuring the controller to build itself

TODO

Building your first server

TODO

Configuring the controller to orchestrate AWS with Ansible

TODO

Clone this wiki locally