Initialize ansible and docker web stuff
This commit is contained in:
commit
0e9e7732b2
22
README.md
Normal file
22
README.md
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# infrastructure
|
||||||
|
|
||||||
|
## pbrinkmeier.de
|
||||||
|
|
||||||
|
| Hostname | `h2954114` |
|
||||||
|
| Domains | `{wiki.,codi.}pbrinkmeier.de`, `tichy.click`, `h2954114.stratoserver.net` |
|
||||||
|
|
||||||
|
### Personal Website
|
||||||
|
|
||||||
|
[pbrinkmeier.de](https://pbrinkmeier.de)
|
||||||
|
|
||||||
|
### Personal Wiki
|
||||||
|
|
||||||
|
[wiki.pbrinkmeier.de](https://wiki.pbrinkmeier.de)
|
||||||
|
|
||||||
|
### Collaborative Markdown Editing
|
||||||
|
|
||||||
|
[codi.pbrinkmeier.de](https://codi.pbrinkmeier.de)
|
||||||
|
|
||||||
|
### Tichy-Clicker
|
||||||
|
|
||||||
|
[tichy.click](https://tichy.click)
|
1
ansible/.gitignore
vendored
Normal file
1
ansible/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
venv
|
14
ansible/README.md
Normal file
14
ansible/README.md
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
# ansible
|
||||||
|
|
||||||
|
## Ansible Control Node Setup
|
||||||
|
|
||||||
|
In a Python 3 environment (perhaps a venv):
|
||||||
|
|
||||||
|
```
|
||||||
|
pip install -r requirements.txt
|
||||||
|
```
|
||||||
|
|
||||||
|
## `misc.yaml`
|
||||||
|
|
||||||
|
Server for miscellaneous stuff, e.g. the website.
|
||||||
|
Expects to have a user `andi` who can `sudo`.
|
2
ansible/ansible.cfg
Normal file
2
ansible/ansible.cfg
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[defaults]
|
||||||
|
inventory = ./inventory
|
3
ansible/group_vars/misc/vars.yaml
Normal file
3
ansible/group_vars/misc/vars.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
---
|
||||||
|
ansible_user: andi
|
||||||
|
ansible_python_interpreter: /usr/bin/python3
|
2
ansible/inventory
Normal file
2
ansible/inventory
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[misc]
|
||||||
|
h2954114.stratoserver.net
|
33
ansible/misc.yaml
Normal file
33
ansible/misc.yaml
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
---
|
||||||
|
- hosts: misc
|
||||||
|
tasks:
|
||||||
|
- include_role:
|
||||||
|
name: docker
|
||||||
|
- name: Install pip prerequisites
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
name:
|
||||||
|
- python3-pip
|
||||||
|
- python3-setuptools
|
||||||
|
- python3-virtualenv
|
||||||
|
- name: Install global python docker package
|
||||||
|
become: yes
|
||||||
|
pip:
|
||||||
|
name:
|
||||||
|
- docker
|
||||||
|
- docker-compose
|
||||||
|
- requests
|
||||||
|
- name: Upload docker configuration
|
||||||
|
become: yes
|
||||||
|
copy:
|
||||||
|
src: ../docker
|
||||||
|
dest: /etc/pbri
|
||||||
|
- name: Set up docker stuff
|
||||||
|
become: yes
|
||||||
|
docker_compose:
|
||||||
|
project_src: "/etc/pbri/docker/{{ item.name }}"
|
||||||
|
state: "{{ item.state }}"
|
||||||
|
debug: yes
|
||||||
|
loop:
|
||||||
|
- name: web
|
||||||
|
state: present
|
4
ansible/roles/docker/README.md
Normal file
4
ansible/roles/docker/README.md
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
# docker
|
||||||
|
|
||||||
|
Installs the Docker repositories and packages as described in [the Docker documentation](https://docs.docker.com/engine/install/debian/#install-using-the-repository).
|
||||||
|
Currently only works for Ubuntu since ubuntu is hardcoded into the `.list` file.
|
38
ansible/roles/docker/tasks/main.yaml
Normal file
38
ansible/roles/docker/tasks/main.yaml
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
---
|
||||||
|
- name: Install Docker installation prerequisites
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
state: latest
|
||||||
|
name:
|
||||||
|
- ca-certificates
|
||||||
|
- curl
|
||||||
|
- gnupg
|
||||||
|
- lsb-release
|
||||||
|
|
||||||
|
- name: Add Docker GPG key
|
||||||
|
become: yes
|
||||||
|
shell: "curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg"
|
||||||
|
args:
|
||||||
|
creates: /usr/share/keyrings/docker-archive-keyring.gpg
|
||||||
|
|
||||||
|
- name: Retrieve dpkg architecture
|
||||||
|
shell: dpkg --print-architecture
|
||||||
|
register: dpkg_architecture
|
||||||
|
changed_when: False
|
||||||
|
|
||||||
|
- name: Add Docker apt repository
|
||||||
|
become: yes
|
||||||
|
template:
|
||||||
|
src: docker.list.j2
|
||||||
|
dest: /etc/apt/sources.list.d/docker.list
|
||||||
|
|
||||||
|
- name: Install Docker
|
||||||
|
become: yes
|
||||||
|
apt:
|
||||||
|
update_cache: yes
|
||||||
|
state: latest
|
||||||
|
name:
|
||||||
|
- docker-ce
|
||||||
|
- docker-ce-cli
|
||||||
|
- containerd.io
|
1
ansible/roles/docker/templates/docker.list.j2
Normal file
1
ansible/roles/docker/templates/docker.list.j2
Normal file
@ -0,0 +1 @@
|
|||||||
|
deb [arch={{ dpkg_architecture.stdout }} signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable
|
5
docker/web/Caddyfile
Normal file
5
docker/web/Caddyfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
h2954114.stratoserver.net {
|
||||||
|
file_server browse {
|
||||||
|
root /usr/share
|
||||||
|
}
|
||||||
|
}
|
3
docker/web/Dockerfile
Normal file
3
docker/web/Dockerfile
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
FROM caddy
|
||||||
|
|
||||||
|
COPY Caddyfile /etc/caddy/Caddyfile
|
3
docker/web/README.md
Normal file
3
docker/web/README.md
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# web
|
||||||
|
|
||||||
|
Contains stuff exposed via HTTP(S) to the Internet, e.g. personal website, Wiki, etc.
|
17
docker/web/docker-compose.yaml
Normal file
17
docker/web/docker-compose.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
image: pbrinkmeier/web
|
||||||
|
build: .
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
volumes:
|
||||||
|
- caddy_data:/data
|
||||||
|
- caddy_config:/config
|
||||||
|
restart: always
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
caddy_data:
|
||||||
|
caddy_config:
|
Loading…
x
Reference in New Issue
Block a user