Compare commits
11 Commits
52b49188f2
...
ansible
| Author | SHA1 | Date | |
|---|---|---|---|
|
17b0cf5e0b
|
|||
|
89472a3a70
|
|||
|
dd6fb1cf50
|
|||
|
310feeb6c5
|
|||
| eec9aa290e | |||
| 7c84ec227d | |||
| 2f27421773 | |||
| b35e807e3c | |||
|
cdeecc2335
|
|||
|
ee67175267
|
|||
|
713ae20355
|
46
ansible/Makefile
Normal file
46
ansible/Makefile
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
hosts = $(wildcard host_vars/*.yml)
|
||||||
|
|
||||||
|
logs = $(patsubst host_vars/%.yml, logs/%.json, $(hosts) )
|
||||||
|
|
||||||
|
playbooks = $(wildcard playbooks/*.yml)
|
||||||
|
plays = $(patsubst playbooks/%.yml, %, $(playbooks) )
|
||||||
|
|
||||||
|
defaults += $(wildcard logs/*)
|
||||||
|
|
||||||
|
###### Recipes ######
|
||||||
|
|
||||||
|
.PHONY: help
|
||||||
|
help: ## Print the help message.
|
||||||
|
@awk 'BEGIN {FS = ":.*?## "} /^[0-9a-zA-Z._-]+:.*?## / {printf "\033[36m%s\033[0m : %s\n", $$1, $$2}' $(MAKEFILE_LIST) | \
|
||||||
|
column -s ':' -t
|
||||||
|
|
||||||
|
.PHONY: lint
|
||||||
|
lint: $(playbooks) | .ansible/ ## Check syntax and lint all playbooks
|
||||||
|
ansible-playbook --syntax-check $^
|
||||||
|
ansible-lint $^
|
||||||
|
|
||||||
|
.PHONY: records
|
||||||
|
records: $(logs) ## Current info on each host
|
||||||
|
|
||||||
|
$(logs): logs/%.json: | logs/
|
||||||
|
ansible -m setup $(basename $(@F) ) > $@
|
||||||
|
|
||||||
|
-include logs/play.mk
|
||||||
|
|
||||||
|
make_play = printf '.PHONY: %s\n%s: %s \#\# %s\n\n' '$(notdir $(basename $1) )' '$(notdir $(basename $1) )' '$1' '$(shell grep -m1 -oP 'name: \K.*' $1)'
|
||||||
|
|
||||||
|
logs/play.mk: playbooks/*.yml
|
||||||
|
@$(RM) $@
|
||||||
|
@$(foreach book, $^, \
|
||||||
|
$(call make_play, $(book), $@ ) >> $@ ; \
|
||||||
|
printf '\t%s\n\n' 'ansible-playbook $(book)' >> $@ ; \
|
||||||
|
)
|
||||||
|
|
||||||
|
%/:
|
||||||
|
mkdir $@
|
||||||
|
echo '*' > $@.gitignore
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
clean: ## Remove generated files.
|
||||||
|
$(RM) $(defaults)
|
||||||
|
|
||||||
7
ansible/ansible.cfg
Normal file
7
ansible/ansible.cfg
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
[defaults]
|
||||||
|
inventory = hosts.yaml
|
||||||
|
local_tmp = .ansible
|
||||||
|
cow_selection = random
|
||||||
|
vault_password_file = pass.sh
|
||||||
|
interpreter_python = auto_silent
|
||||||
|
|
||||||
7
ansible/files/wireguard/server_private_key
Normal file
7
ansible/files/wireguard/server_private_key
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
39653235613163636362653036663563383839313836643563323462616163353364323862313039
|
||||||
|
6564656661323039393563636133303132626663366233390a343535383963353763383364376438
|
||||||
|
36306435396461393132653161393238623562393465356166343764336661376434333335643863
|
||||||
|
3865373732363761620a613236613963396638613831326332386530326239373062333933646239
|
||||||
|
39313336383366636133646336653236303261346238306336663564373063383634313361356335
|
||||||
|
6334353863363931643338663833333065343435333231623466
|
||||||
1
ansible/files/wireguard/server_public_key
Normal file
1
ansible/files/wireguard/server_public_key
Normal file
@@ -0,0 +1 @@
|
|||||||
|
GH+qA1Au9BraGhNt7Aqp8tdhGVfH8ENnY3VzKhe69XQ=
|
||||||
9
ansible/host_vars/nimbus.yml
Normal file
9
ansible/host_vars/nimbus.yml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
$ANSIBLE_VAULT;1.1;AES256
|
||||||
|
37363765623839666637633861353139353935323364343538356536653561373266336161353937
|
||||||
|
3466653434666163313936393366613666393863616262320a643930663038326666653064613062
|
||||||
|
62613661396538363539643938323033663932326362626335333438653865623038336136623030
|
||||||
|
3735366564366431330a373061393766346631643434383364646431346231356466663737626435
|
||||||
|
64303835343237383761633939643431333439643933636139666163393637363430633261633736
|
||||||
|
34626631366163616439366534393031353063363138356638323634313430666330613833386661
|
||||||
|
61346365313534353535633365626364303565363565353765353833363065343232633866633132
|
||||||
|
63643930633266653765
|
||||||
16
ansible/hosts.yaml
Normal file
16
ansible/hosts.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
all:
|
||||||
|
vars:
|
||||||
|
username: dmz
|
||||||
|
locale: Europe/Belgrade
|
||||||
|
libc_locale: en_GB.UTF-8 UTF-8
|
||||||
|
var_locale: LANG=en_GB.UTF-8
|
||||||
|
|
||||||
|
ungrouped:
|
||||||
|
hosts:
|
||||||
|
nimbus:
|
||||||
|
cloud:
|
||||||
|
hosts:
|
||||||
|
nimbus:
|
||||||
|
arch:
|
||||||
|
hosts:
|
||||||
|
nimbus:
|
||||||
3
ansible/pass.sh
Executable file
3
ansible/pass.sh
Executable file
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
pass dmz/xecut/dmz_ansible
|
||||||
106
ansible/playbooks/wireguard.yml
Normal file
106
ansible/playbooks/wireguard.yml
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
---
|
||||||
|
- name: Install Wireguard on Server
|
||||||
|
hosts: nimbus
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Install wireguard tools and dig
|
||||||
|
ansible.builtin.package:
|
||||||
|
name:
|
||||||
|
- wireguard-tools
|
||||||
|
- bind
|
||||||
|
|
||||||
|
- name: Copy keys to server
|
||||||
|
ansible.builtin.copy:
|
||||||
|
src: wireguard/
|
||||||
|
dest: /etc/wireguard/server_public_key
|
||||||
|
|
||||||
|
- name: Remember the public key
|
||||||
|
ansible.builtin.command: cat /etc/wireguard/server_public_key
|
||||||
|
register: wireguard_public_key
|
||||||
|
|
||||||
|
- name: Get server public IP
|
||||||
|
ansible.builtin.command: dig +short myip.opendns.com @resolver1.opendns.com
|
||||||
|
register: wireguard_public_ip
|
||||||
|
|
||||||
|
- name: Allow ipv4 forwarding
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
path: /etc/sysctl.d/wg.conf
|
||||||
|
line: net.ipv4.ip_forward=1
|
||||||
|
create: yes
|
||||||
|
|
||||||
|
- name: Start the wireguard service
|
||||||
|
ansible.builtin.service:
|
||||||
|
name: wg-quick@wg0
|
||||||
|
enabled: yes
|
||||||
|
|
||||||
|
- name: Install Wireguard on Host
|
||||||
|
hosts: localhost
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: Install wireguard tools
|
||||||
|
ansible.builtin.package:
|
||||||
|
name:
|
||||||
|
- wireguard-tools
|
||||||
|
|
||||||
|
- name: Create private key
|
||||||
|
ansible.builtin.shell:
|
||||||
|
chdir: /etc/wireguard/
|
||||||
|
creates: /etc/wireguard/dmz_public_key
|
||||||
|
cmd: "wg genkey | tee dmz_private_key | wg pubkey > dmz_public_key"
|
||||||
|
|
||||||
|
- name: Remember the public key
|
||||||
|
ansible.builtin.command: cat /etc/wireguard/dmz_public_key
|
||||||
|
register: client_public_key
|
||||||
|
|
||||||
|
- name: Generate Server Config
|
||||||
|
hosts: nimbus
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Create wg0 configuration
|
||||||
|
ansible.builtin.shell:
|
||||||
|
chdir: /etc/wireguard/
|
||||||
|
creates: /etc/wireguard/wg0.conf
|
||||||
|
cmd: |
|
||||||
|
echo "
|
||||||
|
[Interface]
|
||||||
|
Address = 10.0.0.1/24
|
||||||
|
SaveConfig = true
|
||||||
|
PrivateKey = $(cat server_private_key)
|
||||||
|
ListenPort = 51900
|
||||||
|
|
||||||
|
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||||
|
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
|
||||||
|
|
||||||
|
[Peer]
|
||||||
|
PublicKey = {{ hostvars['localhost']['client_public_key']['stdout'] }}
|
||||||
|
AllowedIPs = 10.0.0.2/32
|
||||||
|
" > /etc/wireguard/wg0.conf
|
||||||
|
|
||||||
|
|
||||||
|
- name: Generate Client Config
|
||||||
|
hosts: localhost
|
||||||
|
become: true
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: Create wg0 client configuration
|
||||||
|
ansible.builtin.shell:
|
||||||
|
chdir: /etc/wireguard/
|
||||||
|
creates: /etc/wireguard/wg0-client.conf
|
||||||
|
cmd: |
|
||||||
|
echo "
|
||||||
|
[Interface]
|
||||||
|
Address = 10.0.0.2/32
|
||||||
|
PrivateKey = $(cat dmz_private_key)
|
||||||
|
DNS = 9.9.9.9
|
||||||
|
|
||||||
|
[Peer]
|
||||||
|
PublicKey = {{ hostvars['nimbus']['wireguard_public_key']['stdout'] }}
|
||||||
|
Endpoint = space.xecut.me:51900
|
||||||
|
AllowedIPs = 10.0.0.1/32
|
||||||
|
" > /etc/wireguard/wg0-client.conf
|
||||||
|
|
||||||
14
ansible/templates/wireguard/wg0.conf
Normal file
14
ansible/templates/wireguard/wg0.conf
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
[Interface]
|
||||||
|
Address = 10.0.0.1/24
|
||||||
|
SaveConfig = true
|
||||||
|
PrivateKey = {{ wg_private_key }}
|
||||||
|
ListenPort = 51900
|
||||||
|
|
||||||
|
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
|
||||||
|
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
|
||||||
|
|
||||||
|
[Peer]
|
||||||
|
PublicKey = {{ wg_public_key }}
|
||||||
|
AllowedIPs = 10.0.0.2/32
|
||||||
|
|
||||||
@@ -1,3 +1,37 @@
|
|||||||
---
|
---
|
||||||
VMID: 109
|
VMID: 109
|
||||||
---
|
---
|
||||||
|
|
||||||
|
[project git](https://gitea.dmz.rs/Decentrala/luser)
|
||||||
|
|
||||||
|
runs on OpenBSD 71
|
||||||
|
|
||||||
|
make
|
||||||
|
- all:
|
||||||
|
- man:
|
||||||
|
- deb:
|
||||||
|
- clean:
|
||||||
|
|
||||||
|
## SYNOPSIS
|
||||||
|
|
||||||
|
**python3 run.py**
|
||||||
|
|
||||||
|
## Login - Register
|
||||||
|
|
||||||
|
Web app for adding,delating and modifying users using LDAP called `luser` - LdapUser
|
||||||
|
website redirects to those web pages
|
||||||
|
|
||||||
|
```sh
|
||||||
|
service luser restart
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Capcha script
|
||||||
|
...
|
||||||
|
|
||||||
|
## COPYRIGHT
|
||||||
|
|
||||||
|
**AGPLv3+**: GNU AGPL version 3 or later <https://gnu.org/licenses/agpl.html>
|
||||||
|
This is *free* software: you are free to change and redistribute it.
|
||||||
|
There is **NO WARRANTY**, to the extent permitted by law.
|
||||||
|
|
||||||
|
|||||||
46
kralizec/forum11/README.md
Normal file
46
kralizec/forum11/README.md
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
---
|
||||||
|
VMID: 119
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
## Data
|
||||||
|
|
||||||
|
`/var/discourse/shared/web_only/`
|
||||||
|
|
||||||
|
|
||||||
|
## Web
|
||||||
|
|
||||||
|
`/var/discourse_docker/`
|
||||||
|
|
||||||
|
|
||||||
|
## Help
|
||||||
|
|
||||||
|
`/var/discourse_docker/discourse_doctor`
|
||||||
|
|
||||||
|
|
||||||
|
## Docker rebuild errors
|
||||||
|
|
||||||
|
`/var/discourse_docker/launcher rebuild web_only`
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
Plugin name is 'ldap', but plugin directory is named 'discourse-ldap-auth'
|
||||||
|
rake aborted!
|
||||||
|
ActiveRecord::NoDatabaseError: We could not find your database: discoursedb. Available database configurations can be found in config/database.yml. (ActiveRecord::NoDatabaseError)
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
FAILED
|
||||||
|
--------------------
|
||||||
|
Pups::ExecError: cd /var/www/discourse && su discourse -c 'bundle exec rake db:migrate' failed with return #<Process::Status: pid 593 exit 1>
|
||||||
|
Location of failure: /usr/local/lib/ruby/gems/3.3.0/gems/pups-1.3.0/lib/pups/exec_command.rb:131:in `spawn'
|
||||||
|
exec failed with the params {"cd"=>"$home", "tag"=>"migrate", "hook"=>"db_migrate", "cmd"=>["su discourse -c 'bundle exec rake db:migrate'"]}
|
||||||
|
bootstrap failed with exit code 1
|
||||||
|
** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.
|
||||||
|
./discourse-doctor may help diagnose the problem.
|
||||||
|
a9a704b1ee166487d8cd2acd5bd9bcc050ed0ec93fc065f58440e4ae208e1937
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
@@ -1,3 +1,6 @@
|
|||||||
---
|
---
|
||||||
VMID: 104
|
VMID: 104
|
||||||
---
|
---
|
||||||
|
|
||||||
|
nginx server
|
||||||
|
|
||||||
|
|||||||
17
kralizec/ldap71/README.md
Normal file
17
kralizec/ldap71/README.md
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
---
|
||||||
|
VMID: 109
|
||||||
|
---
|
||||||
|
|
||||||
|
OpenBSD with ldap service
|
||||||
|
|
||||||
|
192.168.1.15
|
||||||
|
|
||||||
|
|
||||||
|
Restart the service
|
||||||
|
|
||||||
|
```sh
|
||||||
|
rcctl check ldapd
|
||||||
|
rcctl stop ldapd
|
||||||
|
rcctl start ldapd
|
||||||
|
```
|
||||||
|
|
||||||
@@ -1,3 +1,14 @@
|
|||||||
---
|
---
|
||||||
VMID: 105
|
VMID: 105
|
||||||
---
|
---
|
||||||
|
|
||||||
|
Posgresql v13
|
||||||
|
|
||||||
|
- ejabberd (xmpp)
|
||||||
|
- discourse (forum)
|
||||||
|
|
||||||
|
root@192.168.1.28
|
||||||
|
|
||||||
|
other databases are migrated to posgresql12
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
54
kralizec/postgresql12/README.md
Normal file
54
kralizec/postgresql12/README.md
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
---
|
||||||
|
VMID: 121
|
||||||
|
---
|
||||||
|
|
||||||
|
PostgreSql v15
|
||||||
|
|
||||||
|
port 5432
|
||||||
|
|
||||||
|
[installation wiki](https://wiki.debian.org/PostgreSql)
|
||||||
|
|
||||||
|
## Users
|
||||||
|
|
||||||
|
- ejabberd
|
||||||
|
- discorse
|
||||||
|
- gitea
|
||||||
|
- wiki
|
||||||
|
- replication
|
||||||
|
- xmppsqlkrov (not created)
|
||||||
|
- dmzrsflask (not created)
|
||||||
|
|
||||||
|
|
||||||
|
## Config for databases
|
||||||
|
|
||||||
|
- ejabberddb - `/etc/ejabberd/ejabberd.yml`
|
||||||
|
- discorsedb (forum11) `/etc/discorse_docker/containers/web_only.yml` and `-||-/data.yml`
|
||||||
|
- giteadb `/etc/gitea/app.ini`
|
||||||
|
- wikidb `/root/wiki/config.yml`
|
||||||
|
- replication
|
||||||
|
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pg_dump -d <database> -f <file>
|
||||||
|
psql -U <user> -d <dababase> -f <dump.psql>
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Config file
|
||||||
|
|
||||||
|
`/etc/postresql/15main/postresql.conf`
|
||||||
|
changed listening_address from localhost to *
|
||||||
|
|
||||||
|
`/etc/postresql/15main/pg_hba.conf`
|
||||||
|
host all all all md5
|
||||||
|
|
||||||
|
add `/etc/ssl/certs/ssl-cert-snakeoil.pem` to `/etc/ssl/` on every service
|
||||||
|
|
||||||
|
|
||||||
|
## SSL
|
||||||
|
|
||||||
|
For wiki machine certificate pinging is setup
|
||||||
|
In config.yml on wiki machine, the certificate path for new sql server should be added
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -36,6 +36,10 @@ proxies: dmzrs
|
|||||||
name: LDAP
|
name: LDAP
|
||||||
host: moxx
|
host: moxx
|
||||||
|
|
||||||
|
name: dmzrs
|
||||||
|
host: moxx
|
||||||
|
note: hosts the dmz.rs website
|
||||||
|
|
||||||
name: website
|
name: website
|
||||||
host: moxx
|
host: moxx
|
||||||
authqueries: LDAP
|
authqueries: LDAP
|
||||||
|
|||||||
@@ -6,9 +6,19 @@ author: Malin
|
|||||||
source: dmz.rs
|
source: dmz.rs
|
||||||
---
|
---
|
||||||
|
|
||||||
- Access the Kralizec network.
|
Access `moxx`, the Proxmox machine:
|
||||||
- `ssh` into Moxx.
|
|
||||||
- Use `pct` to find and access containers.
|
1. Check you can access the creds in `dmzadmin`: `gpg -d credentials/kralizec/ssh11.gpg`.
|
||||||
|
2. Check the creds work: `ssh dmz.rs ls`.
|
||||||
|
3. Copy your ssh keys across: `ssh-copy-id -i ~/id_selected dmz.rs`.
|
||||||
|
4. Check that works: `test $(ssh dmz.rs hostname) = ssh11`
|
||||||
|
5. Find `moxx`' IP address in its credentials: `moxxIP=[ user ]@[ local ip ]`
|
||||||
|
6. Jump through `ssh11` to access `moxx`: `ssh -J user@dmz.rs $moxx_ip`
|
||||||
|
|
||||||
|
|
||||||
|
# Enter Containers
|
||||||
|
|
||||||
|
Use `pct` to find and access containers:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
pct list | grep -v stopped
|
pct list | grep -v stopped
|
||||||
@@ -17,3 +27,10 @@ pct enter 112
|
|||||||
|
|
||||||
- Don't tell people to type 'pct enter', or they will type `pct`, and hit the enter key I TOLD YOU ALL THE KEY SHOULD BE CALLED RETURN.
|
- Don't tell people to type 'pct enter', or they will type `pct`, and hit the enter key I TOLD YOU ALL THE KEY SHOULD BE CALLED RETURN.
|
||||||
- Now you're in the container.
|
- Now you're in the container.
|
||||||
|
|
||||||
|
## Just for Fun
|
||||||
|
|
||||||
|
```sh
|
||||||
|
pct list | grep -v VMID |\
|
||||||
|
column -J -N vmid,state,current,name | less -R
|
||||||
|
```
|
||||||
|
|||||||
25
xecut/nimbus/README.md
Normal file
25
xecut/nimbus/README.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
source: Decentrala
|
||||||
|
section: 6
|
||||||
|
title: Nimbus
|
||||||
|
---
|
||||||
|
|
||||||
|
Nimbus is a raspberry pi.
|
||||||
|
|
||||||
|
Somehow, nimbus has two ip addresses.
|
||||||
|
They're not yet static, or available from outside.
|
||||||
|
|
||||||
|
```
|
||||||
|
IP = 192.168.0.93
|
||||||
|
192.168.0.94
|
||||||
|
```
|
||||||
|
|
||||||
|
Plan (tentative)
|
||||||
|
----------------
|
||||||
|
|
||||||
|
1. Set Pi up with Wireguard.
|
||||||
|
1. Possibly create a separate network for Decentrala services.
|
||||||
|
1. Ansible.
|
||||||
|
1. ... ?
|
||||||
|
1. Profit.
|
||||||
|
|
||||||
Reference in New Issue
Block a user