Compare commits
3 Commits
98a1087e84
...
7241cca4fb
Author | SHA1 | Date | |
---|---|---|---|
7241cca4fb | |||
03db3241b3 | |||
cd86348f88 |
58
Taskfile.yml
58
Taskfile.yml
@ -7,10 +7,11 @@ vars:
|
|||||||
sh: 'id -u'
|
sh: 'id -u'
|
||||||
GROUP_ID:
|
GROUP_ID:
|
||||||
sh: 'id -g'
|
sh: 'id -g'
|
||||||
HOSTS_FILE: 'ansible/hosts_prod'
|
HOSTS_FILE: 'production.yml'
|
||||||
REMOTE_USER: 'major'
|
REMOTE_USER:
|
||||||
|
sh: 'yq .ungrouped.hosts.server.ansible_user {{.HOSTS_FILE}}'
|
||||||
REMOTE_HOST:
|
REMOTE_HOST:
|
||||||
sh: 'cat {{.HOSTS_FILE}} | xargs'
|
sh: 'yq .ungrouped.hosts.server.ansible_host {{.HOSTS_FILE}}'
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
ssh:
|
ssh:
|
||||||
@ -19,58 +20,11 @@ tasks:
|
|||||||
|
|
||||||
edit-vars:
|
edit-vars:
|
||||||
cmds:
|
cmds:
|
||||||
- ansible-vault edit ansible/vars/vars.yml
|
- ansible-vault edit vars/vars.yml
|
||||||
env:
|
env:
|
||||||
EDITOR: micro
|
EDITOR: micro
|
||||||
|
|
||||||
list-tags:
|
|
||||||
cmds:
|
|
||||||
- >-
|
|
||||||
ansible-playbook
|
|
||||||
--inventory="{{.HOSTS_FILE}}"
|
|
||||||
--list-tags
|
|
||||||
ansible/configuration.yml
|
|
||||||
|
|
||||||
configure:
|
|
||||||
internal: true
|
|
||||||
vars:
|
|
||||||
TAGS: '{{ (empty .TAGS) | ternary "" (list "--tags=\"" .TAGS "\"" | join "") }}'
|
|
||||||
cmds:
|
|
||||||
- >-
|
|
||||||
ansible-playbook
|
|
||||||
--become
|
|
||||||
--user="{{.REMOTE_USER}}"
|
|
||||||
--inventory="{{.HOSTS_FILE}}"
|
|
||||||
--extra-vars="ansible_python_interpreter=/usr/bin/python3"
|
|
||||||
{{.TAGS}}
|
|
||||||
ansible/configuration.yml
|
|
||||||
|
|
||||||
configure-all:
|
|
||||||
cmds:
|
|
||||||
- task: configure
|
|
||||||
|
|
||||||
configure-monitoring:
|
|
||||||
cmds:
|
|
||||||
- task: configure
|
|
||||||
vars: { TAGS: 'monitoring' }
|
|
||||||
|
|
||||||
configure-apps:
|
|
||||||
cmds:
|
|
||||||
- task: configure
|
|
||||||
vars: { TAGS: 'webserver,apps,env' }
|
|
||||||
|
|
||||||
configure-users:
|
|
||||||
cmds:
|
|
||||||
- task: configure
|
|
||||||
vars: { TAGS: 'apps,env' }
|
|
||||||
|
|
||||||
format-py-files:
|
format-py-files:
|
||||||
cmds:
|
cmds:
|
||||||
- >-
|
- >-
|
||||||
docker run
|
docker run --rm -u {{.USER_ID}}:{{.GROUP_ID}} -v $PWD:/app -w /app pyfound/black:latest_release black .
|
||||||
--rm
|
|
||||||
-u {{.USER_ID}}:{{.GROUP_ID}}
|
|
||||||
-v $PWD:/app
|
|
||||||
-w /app
|
|
||||||
pyfound/black:latest_release
|
|
||||||
black .
|
|
||||||
|
@ -1 +0,0 @@
|
|||||||
158.160.46.255
|
|
27
playbook-caddy.yml
Normal file
27
playbook-caddy.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: 'Install and configure Caddy server'
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
vars_files:
|
||||||
|
- vars/ports.yml
|
||||||
|
- vars/vars.yml
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
|
||||||
|
- name: 'Ensure networkd service is started (required by Caddy).'
|
||||||
|
ansible.builtin.systemd:
|
||||||
|
name: systemd-networkd
|
||||||
|
state: started
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
- name: 'Install and configure Caddy server'
|
||||||
|
ansible.builtin.import_role:
|
||||||
|
name: caddy_ansible.caddy_ansible
|
||||||
|
vars:
|
||||||
|
caddy_github_token: '{{ caddy_vars.github_token }}'
|
||||||
|
caddy_config: '{{ lookup("template", "templates/Caddyfile.j2") }}'
|
||||||
|
caddy_setcap: true
|
||||||
|
caddy_systemd_capabilities_enabled: true
|
||||||
|
caddy_systemd_capabilities: "CAP_NET_BIND_SERVICE"
|
||||||
|
# Поменяй на true, чтобы обновить Caddy
|
||||||
|
caddy_update: false
|
@ -7,26 +7,6 @@
|
|||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
|
||||||
- name: 'Ensure networkd service is started (required by Caddy).'
|
|
||||||
systemd:
|
|
||||||
name: systemd-networkd
|
|
||||||
state: started
|
|
||||||
enabled: true
|
|
||||||
tags:
|
|
||||||
- webserver
|
|
||||||
|
|
||||||
- import_role:
|
|
||||||
name: caddy_ansible.caddy_ansible
|
|
||||||
vars:
|
|
||||||
caddy_github_token: '{{ caddy_vars.github_token }}'
|
|
||||||
caddy_config: '{{ lookup("template", "templates/Caddyfile.j2") }}'
|
|
||||||
caddy_update: False
|
|
||||||
caddy_setcap: True
|
|
||||||
caddy_systemd_capabilities_enabled: True
|
|
||||||
caddy_systemd_capabilities: "CAP_NET_BIND_SERVICE"
|
|
||||||
tags:
|
|
||||||
- webserver
|
|
||||||
|
|
||||||
# Applications
|
# Applications
|
||||||
|
|
||||||
- import_role:
|
- import_role:
|
||||||
|
27
playbook-remove-user-and-app.yml
Normal file
27
playbook-remove-user-and-app.yml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
---
|
||||||
|
- name: 'Update and upgrade system packages'
|
||||||
|
hosts: all
|
||||||
|
|
||||||
|
vars_files:
|
||||||
|
- vars/ports.yml
|
||||||
|
- vars/vars.yml
|
||||||
|
|
||||||
|
vars:
|
||||||
|
user_name: '<put-name-here>'
|
||||||
|
|
||||||
|
tasks:
|
||||||
|
- name: 'Remove user "{{ user_name }}"'
|
||||||
|
ansible.builtin.user:
|
||||||
|
name: '{{ user_name }}'
|
||||||
|
state: absent
|
||||||
|
remove: true
|
||||||
|
|
||||||
|
- name: 'Remove group "{{ user_name }}"'
|
||||||
|
ansible.builtin.group:
|
||||||
|
name: '{{ user_name }}'
|
||||||
|
state: absent
|
||||||
|
|
||||||
|
- name: 'Remove web dir'
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: '/var/www/{{ user_name }}'
|
||||||
|
state: absent
|
@ -10,6 +10,7 @@
|
|||||||
apt_packages:
|
apt_packages:
|
||||||
- acl
|
- acl
|
||||||
- git
|
- git
|
||||||
|
- htop
|
||||||
- python3-pip
|
- python3-pip
|
||||||
|
|
||||||
tasks:
|
tasks:
|
||||||
|
@ -10,18 +10,18 @@
|
|||||||
- name: Perform an upgrade of packages
|
- name: Perform an upgrade of packages
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
upgrade: 'yes'
|
upgrade: 'yes'
|
||||||
update_cache: yes
|
update_cache: true
|
||||||
|
|
||||||
- name: Check if a reboot is required
|
- name: Check if a reboot is required
|
||||||
ansible.builtin.stat:
|
ansible.builtin.stat:
|
||||||
path: /var/run/reboot-required
|
path: /var/run/reboot-required
|
||||||
get_checksum: no
|
get_checksum: false
|
||||||
register: reboot_required_file
|
register: reboot_required_file
|
||||||
|
|
||||||
- name: Reboot the server (if required)
|
- name: Reboot the server (if required)
|
||||||
ansible.builtin.reboot:
|
ansible.builtin.reboot:
|
||||||
when: reboot_required_file.stat.exists == true
|
when: reboot_required_file.stat.exists
|
||||||
|
|
||||||
- name: Remove dependencies that are no longer required
|
- name: Remove dependencies that are no longer required
|
||||||
ansible.builtin.apt:
|
ansible.builtin.apt:
|
||||||
autoremove: yes
|
autoremove: true
|
||||||
|
7
production.yml
Normal file
7
production.yml
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
ungrouped:
|
||||||
|
hosts:
|
||||||
|
server:
|
||||||
|
ansible_host: '158.160.46.255'
|
||||||
|
ansible_user: 'major'
|
||||||
|
ansible_become: true
|
4
tasks.py
4
tasks.py
@ -53,7 +53,5 @@ def deploy(app_name: str, compose_file="docker-compose.yml", dirs=None):
|
|||||||
c.run(
|
c.run(
|
||||||
f"docker compose --project-name {shlex.quote(app_name)} --env-file=.env.prod up --detach --remove-orphans"
|
f"docker compose --project-name {shlex.quote(app_name)} --env-file=.env.prod up --detach --remove-orphans"
|
||||||
)
|
)
|
||||||
c.run(
|
c.run(f"docker system prune --all --volumes --force")
|
||||||
f"docker system prune --all --volumes --force"
|
|
||||||
)
|
|
||||||
print("Done.")
|
print("Done.")
|
||||||
|
@ -7,18 +7,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
# Proxy services
|
# Netdata service
|
||||||
# -------------------------------------------------------------------
|
# -------------------------------------------------------------------
|
||||||
|
|
||||||
vakhrushev.me {
|
|
||||||
tls anwinged@ya.ru
|
|
||||||
|
|
||||||
reverse_proxy {
|
|
||||||
to 127.0.0.1:{{ homepage_port }}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# NetData proxy
|
|
||||||
status.vakhrushev.me, :29999 {
|
status.vakhrushev.me, :29999 {
|
||||||
tls anwinged@ya.ru
|
tls anwinged@ya.ru
|
||||||
|
|
||||||
@ -31,27 +22,15 @@ status.vakhrushev.me, :29999 {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wiki.vakhrushev.me {
|
# -------------------------------------------------------------------
|
||||||
|
# Applications
|
||||||
|
# -------------------------------------------------------------------
|
||||||
|
|
||||||
|
vakhrushev.me {
|
||||||
tls anwinged@ya.ru
|
tls anwinged@ya.ru
|
||||||
|
|
||||||
reverse_proxy {
|
reverse_proxy {
|
||||||
to 127.0.0.1:{{ wiki_port }}
|
to 127.0.0.1:{{ homepage_port }}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nomie.vakhrushev.me {
|
|
||||||
tls anwinged@ya.ru
|
|
||||||
|
|
||||||
reverse_proxy {
|
|
||||||
to 127.0.0.1:{{ nomie_port }}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nomie-db.vakhrushev.me {
|
|
||||||
tls anwinged@ya.ru
|
|
||||||
|
|
||||||
reverse_proxy {
|
|
||||||
to 127.0.0.1:{{ nomie_db_port }}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user