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