-
Notifications
You must be signed in to change notification settings - Fork 5
Infrastructure repository
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.
Firstly, we need to create the new repository on our GitLab server:
- In a web browser go to your GitLab installation, for example https://gitlab.controller.acme.com/, and login - instructions here, step 3
- Click on Groups on the left menu
- Click the
New groupbutton on the right, thenCreate group- we recommend you name it
Infrasand leave it private - this is where we will store our "infra" repositories
- we recommend you name it
- 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
- we recommend you name it something sensible and recognisable, beginning with
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).
We have a template repository for an AWS account. To use it:
- Still in GitLab, as stated in the README for the template, create a global environment variable called
ENVinAdmin->Settings->CI/CD->Variables -
Go to our templates repository, click the green
Codebutton and clickDownload ZIP - Create a folder on your computer where you want to keep your repository and copy the contents of the extracted
NETWORKfolder into it- Be sure to get all the hidden files!
- You can delete
README.mdif you wish
-
As stated in the README for the template, find and replace all instances of these strings:
-
SHORTNAME- your infrastructure name -
CIDR_BASE- your VPC CIDR base for IPv4 addressing
-
Example:
# do this within your infra repo folder
find ./ -type f -exec sed -i -e 's/SHORTNAME/main-website/g' {} \;
find ./ -type f -exec sed -i -e 's/CIDR_BASE/10.0/g' {} \;- Back in GitLab, add an SSH key by clicking the
Add SSH keybutton in the banner, if you have not already done so - On your project page, follow the
Push an existing folderinstructions on your project front page, but use the branch nameapply
Before we can orchestrate any builds on our server we need to create a runner.
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)
TODO
TODO
TODO