Week 1: Provision and deploy a server
Week 1: Provision and deploy a server
This week you set up the foundation the rest of the module stands on: a real server in the university cloud, created by code rather than by clicking, and a pipeline that puts your site on it when you tag a release. You start with a plain static page on purpose, so that all the attention goes to the tools around it.
A server you can destroy and build again from your repo, and a release that is one git tag.
Issues
Work through the issues in order, in your own repository. Each one builds on the one before.
| Issue | What you do |
|---|---|
getting-started | Clone the starter repo, run the site locally and meet the CI pipeline that checks it. |
provision-server | Terraform creates an OpenStack server and network, and Ansible installs Caddy on it. |
deploy-on-tag | The pipeline gets a deploy stage that copies the site to the server when you push a tag. |
https | Serve the site over HTTPS with a certificate from LNU's Campus CA. |
Write the week report in report/week-1.md after the last issue.
Slide decks
Each deck is a self-study lecture of about 15–20 minutes, except the intro, which takes about five.
- Week 1 intro: what the week asks of you
- Cloud basics: virtual machines, networks, floating IPs and security groups in OpenStack
- Infrastructure as code: Terraform and Ansible, declarative against imperative, idempotence
- CI/CD: pipelines, stages, variables, and why deploying on a tag is a choice
- HTTPS: certificates, ACME and TLS termination
Reading material
docs/OPENSTACK.md,docs/TERRAFORM.md,docs/ANSIBLE.md,docs/CI.mdin your repo- OpenStack documentation
- ca.camp.lnu.se, LNU's guide to Cumulus
- Terraform documentation
- Ansible documentation
- GitLab CI/CD documentation
- Caddy automatic HTTPS