Init first version
This commit is contained in:
parent
647c2c05e9
commit
507f8a7736
4 changed files with 133 additions and 0 deletions
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
pyinfra-debug.log
|
114
deploy.py
Normal file
114
deploy.py
Normal file
|
@ -0,0 +1,114 @@
|
|||
from pyinfra import host
|
||||
from pyinfra.operations import apt, server, files, systemd
|
||||
|
||||
SUDO = True
|
||||
|
||||
server.user(
|
||||
name='Add user benpro',
|
||||
user='benpro',
|
||||
groups=['sudo'],
|
||||
public_keys='ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFs7yO0auvwFL8HTLMUq6lET6DMYLhqhd32rqFfZUsjL openpgp:0xA32E99AD',
|
||||
shell='/bin/bash',
|
||||
present=True,
|
||||
)
|
||||
|
||||
server.hostname(
|
||||
name='Set the hostname',
|
||||
hostname='uptime.benpro.fr',
|
||||
)
|
||||
|
||||
apt.update(
|
||||
name='Update apt repositories',
|
||||
)
|
||||
|
||||
apt.upgrade(
|
||||
name='Upgrade apt packages',
|
||||
)
|
||||
|
||||
# Disabled because need to deal with Oracle pre-set rules =_=
|
||||
#apt.packages(
|
||||
# name='Install ufw',
|
||||
# packages=['ufw'],
|
||||
# update=False,
|
||||
#)
|
||||
#
|
||||
#files.line(
|
||||
# name='Set port 28 for SSH',
|
||||
# path='/etc/ssh/sshd_config',
|
||||
# line=r'Port .*',
|
||||
# replace='Port 28',
|
||||
#)
|
||||
#
|
||||
#systemd.service(
|
||||
# name='Reload sshd',
|
||||
# service='ssh.service',
|
||||
# reloaded=True,
|
||||
#)
|
||||
#
|
||||
#server.shell(
|
||||
# name='Add ufw rules',
|
||||
# commands=['ufw limit 28'],
|
||||
#)
|
||||
#
|
||||
#server.shell(
|
||||
# name='Enable ufw',
|
||||
# commands=['yes | ufw enable'],
|
||||
#)
|
||||
|
||||
apt.packages(
|
||||
name='Install skopeo',
|
||||
packages=['skopeo'],
|
||||
update=False,
|
||||
)
|
||||
|
||||
files.download(
|
||||
name='Download undocker',
|
||||
src='https://git.sr.ht/~motiejus/undocker/refs/download/v1.0.2/undocker-linux-amd64-v1.0.2',
|
||||
dest='/usr/local/bin/undocker',
|
||||
user='root',
|
||||
group='root',
|
||||
mode='755',
|
||||
cache_time=604800,
|
||||
)
|
||||
|
||||
if not host.fact.file('/tmp/uptime-kuma.tar'):
|
||||
server.shell(
|
||||
name='Download uptime-kuma',
|
||||
chdir='/tmp',
|
||||
commands=['skopeo copy docker://docker.io/louislam/uptime-kuma:latest docker-archive:uptime-kuma.tar'],
|
||||
)
|
||||
|
||||
files.directory(
|
||||
name='Ensure /opt/uptime-kuma exists',
|
||||
path='/opt/uptime-kuma',
|
||||
user='root',
|
||||
group='root',
|
||||
mode=755
|
||||
)
|
||||
|
||||
if not host.fact.directory('/opt/uptime-kuma/app'):
|
||||
server.shell(
|
||||
name='Undocker the app',
|
||||
chdir='/opt/uptime-kuma',
|
||||
commands=['undocker /tmp/uptime-kuma.tar - | tar -xv'],
|
||||
)
|
||||
|
||||
files.put(
|
||||
name='Update systemd service file',
|
||||
src='files/uptime-kuma.service',
|
||||
dest='/etc/systemd/system/uptime-kuma.service',
|
||||
mode='644',
|
||||
)
|
||||
|
||||
systemd.daemon_reload(
|
||||
name='Reload systemd',
|
||||
user_mode=False,
|
||||
)
|
||||
|
||||
systemd.service(
|
||||
name='Restart and enable uptime-kuma service',
|
||||
service='uptime-kuma.service',
|
||||
running=True,
|
||||
restarted=True,
|
||||
enabled=True,
|
||||
)
|
17
files/uptime-kuma.service
Normal file
17
files/uptime-kuma.service
Normal file
|
@ -0,0 +1,17 @@
|
|||
[Unit]
|
||||
Description=uptime-kuma
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
DynamicUser=yes
|
||||
PrivateUsers=true
|
||||
StateDirectory=uptime-kuma
|
||||
WorkingDirectory=/app
|
||||
RootDirectory=/opt/uptime-kuma
|
||||
ExecStartPre=+/bin/ln -sf /var/lib/uptime-kuma /app/data
|
||||
ExecStart=/usr/local/bin/node server/server.js
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
1
inventory.py
Normal file
1
inventory.py
Normal file
|
@ -0,0 +1 @@
|
|||
my_hosts = ['uptime.benpro.fr']
|
Reference in a new issue