Initial commit
This commit is contained in:
commit
f2929e7e61
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
.vault_pass
|
||||||
|
/venv
|
7
ansible.cfg
Normal file
7
ansible.cfg
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
[defaults]
|
||||||
|
#nocows = 1
|
||||||
|
inventory = ./hosts
|
||||||
|
vault_password_file = .vault_pass
|
||||||
|
|
||||||
|
[privilege_escalation]
|
||||||
|
#become_ask_pass = True
|
31
group_vars/all.yml
Normal file
31
group_vars/all.yml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
ansible_become_password: "{{ secret_sudo }}"
|
||||||
|
|
||||||
|
main_username: roxedus
|
||||||
|
main_groupname: "{{ main_username }}"
|
||||||
|
main_uid: 1000
|
||||||
|
main_gid: "{{ main_uid }}"
|
||||||
|
|
||||||
|
package_list:
|
||||||
|
- name: bash-completion
|
||||||
|
- name: curl
|
||||||
|
- name: git
|
||||||
|
- name: htop
|
||||||
|
- name: iftop
|
||||||
|
- name: lm-sensors
|
||||||
|
- name: ncdu
|
||||||
|
- name: net-tools
|
||||||
|
- name: nmap
|
||||||
|
- name: openssh-server
|
||||||
|
- name: open-vm-tools
|
||||||
|
- name: tmux
|
||||||
|
- name: wget
|
||||||
|
|
||||||
|
ntp_timezone: "Europe/Oslo"
|
||||||
|
|
||||||
|
security_ssh_port: 22
|
||||||
|
security_ssh_password_authentication: "no"
|
||||||
|
security_ssh_permit_root_login: "no"
|
||||||
|
security_ssh_usedns: "no"
|
||||||
|
security_autoupdate_enabled: true
|
||||||
|
security_fail2ban_enabled: true
|
17
group_vars/docker.yml
Normal file
17
group_vars/docker.yml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
docker_install_compose: true
|
||||||
|
docker_users:
|
||||||
|
- "{{ main_username }}"
|
||||||
|
|
||||||
|
appdata_path: /opt/appdata
|
||||||
|
global_env_vars:
|
||||||
|
- "PUID={{ main_uid }}"
|
||||||
|
- "PGID={{ main_gid }}"
|
||||||
|
- "TZ={{ ntp_timezone }}"
|
||||||
|
docker_compose_generator_uid: "{{ main_uid }}"
|
||||||
|
docker_compose_generator_gid: "{{ main_gid }}"
|
||||||
|
docker_compose_generator_output_path: /home/roxedus
|
||||||
|
container_config_path: /config
|
||||||
|
container_data_path: /data
|
||||||
|
|
||||||
|
docker_compose_file_mask: 0664
|
||||||
|
docker_compose_directory_mask: 0775
|
31
group_vars/edge.yml
Normal file
31
group_vars/edge.yml
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
containers:
|
||||||
|
- service_name: le
|
||||||
|
active: true
|
||||||
|
container_name: le
|
||||||
|
image: linuxserver/letsencrypt
|
||||||
|
ports:
|
||||||
|
- 80:80
|
||||||
|
- 443:443
|
||||||
|
volumes:
|
||||||
|
- "{{ appdata_path }}/letsencrypt/config:/config"
|
||||||
|
restart: always
|
||||||
|
cap_add:
|
||||||
|
- NET_ADMIN
|
||||||
|
include_global_env_vars: true
|
||||||
|
environment:
|
||||||
|
- EMAIL={{ secret_cloudflare.email }}
|
||||||
|
- URL={{ DOMAIN }}
|
||||||
|
- SUBDOMAINS=wildcard
|
||||||
|
- ONLY_SUBDOMAINS=true
|
||||||
|
- DHLEVEL=4096
|
||||||
|
- VALIDATION=dns
|
||||||
|
- DNSPLUGIN=cloudflare
|
||||||
|
|
||||||
|
- service_name: org
|
||||||
|
active: false
|
||||||
|
container_name: org
|
||||||
|
image: organizr/organizr
|
||||||
|
include_global_env_vars: true
|
||||||
|
environment:
|
||||||
|
- branch=dev
|
||||||
|
- fpm=true
|
2
group_vars/roxedus_xyz.yml
Normal file
2
group_vars/roxedus_xyz.yml
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
---
|
||||||
|
DOMAIN: roxedus.xyz
|
9
hosts
Normal file
9
hosts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
[roxedus_xyz]
|
||||||
|
192.168.2.5
|
||||||
|
|
||||||
|
[docker]
|
||||||
|
192.168.2.5
|
||||||
|
#10.0.0.36
|
||||||
|
|
||||||
|
[edge]
|
||||||
|
192.168.2.5
|
6
requirements.yaml
Normal file
6
requirements.yaml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
- src: geerlingguy.docker
|
||||||
|
- src: geerlingguy.security
|
||||||
|
- src: geerlingguy.ntp
|
||||||
|
- src: grog.package
|
||||||
|
- src: ironicbadger.ansible_role_docker_compose_generator
|
||||||
|
- src: ironicbadger.ansible_role_nginx_configs
|
15
roles/dock-cfddns/files/docker-compose.yml
Normal file
15
roles/dock-cfddns/files/docker-compose.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
# Ansible managed
|
||||||
|
---
|
||||||
|
version: "2"
|
||||||
|
services:
|
||||||
|
cfddns:
|
||||||
|
image: hotio/cloudflare-ddns
|
||||||
|
container_name: cfddns
|
||||||
|
environment:
|
||||||
|
- CF_USER={{ secret_cloudflare.email }}
|
||||||
|
- CF_APIKEY={{ secret_cloudflare[DOMAIN].apikey }}
|
||||||
|
- CF_ZONES={{ secret_cloudflare[DOMAIN].zones }}
|
||||||
|
- CF_HOSTS=ddns.{{ DOMAIN }}
|
||||||
|
- CF_RECORDTYPES=A
|
||||||
|
- APPRISE=discord://{{ secret_discord_webook }}
|
||||||
|
restart: always
|
29
roles/dock-cfddns/tasks/main.yml
Normal file
29
roles/dock-cfddns/tasks/main.yml
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
- name: Create cfddns directory
|
||||||
|
file:
|
||||||
|
path: "{{ appdata_path }}/cfddns"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ main_username }}"
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Install cfddns compose file
|
||||||
|
template:
|
||||||
|
src: files/docker-compose.yml
|
||||||
|
dest: "{{ appdata_path }}/cfddns/docker-compose.yml"
|
||||||
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
|
owner: "{{ main_username }}"
|
||||||
|
validate: docker-compose -f %s config
|
||||||
|
register: compose_file
|
||||||
|
become: true
|
||||||
|
|
||||||
|
- name: Cycle cfddns container
|
||||||
|
docker_compose:
|
||||||
|
project_src: "{{ appdata_path }}/cfddns"
|
||||||
|
pull: true
|
||||||
|
remove_orphans: true
|
||||||
|
remove_volumes: true
|
||||||
|
state: "{{ item }}"
|
||||||
|
when: compose_file.changed
|
||||||
|
loop:
|
||||||
|
- absent
|
||||||
|
- present
|
37
run.yml
Normal file
37
run.yml
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
- hosts: all
|
||||||
|
become: yes
|
||||||
|
vars_files:
|
||||||
|
- "vars/vault.yaml"
|
||||||
|
roles:
|
||||||
|
- role: geerlingguy.security
|
||||||
|
- role: geerlingguy.ntp
|
||||||
|
- role: grog.package
|
||||||
|
tasks:
|
||||||
|
- name: remove ubuntu motd spam
|
||||||
|
become: true
|
||||||
|
file:
|
||||||
|
path: "/etc/update-motd.d/{{ item }}"
|
||||||
|
state: absent
|
||||||
|
loop:
|
||||||
|
- 50-landscape-sysinfo
|
||||||
|
- 80-livepatch
|
||||||
|
- 95-hwe-eol
|
||||||
|
- 10-help-text
|
||||||
|
- 50-motd-news
|
||||||
|
when: ansible_distribution == 'Ubuntu'
|
||||||
|
|
||||||
|
- hosts: docker
|
||||||
|
become: yes
|
||||||
|
vars_files:
|
||||||
|
- "vars/vault.yaml"
|
||||||
|
roles:
|
||||||
|
- role: geerlingguy.docker
|
||||||
|
|
||||||
|
- hosts: edge
|
||||||
|
become: yes
|
||||||
|
vars_files:
|
||||||
|
- "vars/vault.yaml"
|
||||||
|
roles:
|
||||||
|
- role: ironicbadger.ansible_role_docker_compose_generator
|
||||||
|
- role: dock-cfddns
|
21
vars/vault.yaml
Normal file
21
vars/vault.yaml
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
66383734663630303361626461303332643532336364666666646333643738653634393261663066
|
||||||
|
6663316433393663646138303839643430663065313362660a633839366337656636623236396465
|
||||||
|
30666562356566323435646639333637323537353364613961626333343134326630313162353134
|
||||||
|
3861353064313433610a373037326462353838333634373562323866386635386665383838616639
|
||||||
|
31643537666336303933633436663237393135653437326334363238313833333032356465646264
|
||||||
|
30383739356538383961623432326135643365343731643665303131346434393266346362663362
|
||||||
|
37643265653234306631633135323935383634313932393164343562333933313433383763626362
|
||||||
|
66636463353930313433336466393332356531656266346236366536383766356365306163333532
|
||||||
|
37363737316661306332623931366536386366373036346663643135386531313866323566623430
|
||||||
|
63366261303931666465366563396533623835396536633236646462343564326264303761323833
|
||||||
|
38326165333532373635303063633266336231643538323238303932346136376534633037383135
|
||||||
|
34366337346363653438616139623032366163366439313532633932306164633533313735643335
|
||||||
|
64653636393363646437663232376366373765386465643733633164613661336366613763616532
|
||||||
|
32643337653566346332356433393833356132333632356135373238306462623432396134386238
|
||||||
|
31633164613563626666366536613863363334366463366539633939383938353234373865623164
|
||||||
|
65366639333066383863343333323966343361336664346361353739343164353332663136306362
|
||||||
|
35626532306537363536346663316366646534306435396536373435336633616538396334336239
|
||||||
|
34383663303764663637326239396332396131646631393132323930656563343136633561333839
|
||||||
|
37323662373663666564646131643430353761663363353130306333653764306631636461303438
|
||||||
|
33623535363566356262
|
Loading…
Reference in New Issue
Block a user