parent
272d839a42
commit
3a46485067
@ -0,0 +1,6 @@ |
|||||||
|
[defaults] |
||||||
|
inventory = inventory.ini |
||||||
|
remote_user = webapps |
||||||
|
|
||||||
|
[ssh_connection] |
||||||
|
ssh_args = -o ForwardAgent=yes -o ControlMaster=auto -o ControlPersist=60s |
||||||
@ -0,0 +1,2 @@ |
|||||||
|
#!/bin/bash |
||||||
|
ansible-playbook -i inventory.ini deploy.yaml |
||||||
@ -0,0 +1,67 @@ |
|||||||
|
--- |
||||||
|
- name: deploy motief application |
||||||
|
hosts: sgeboers.nl |
||||||
|
remote_user: webapps |
||||||
|
|
||||||
|
tasks: |
||||||
|
- name: ensure git.sgeboers.nl SSH config uses port 222 |
||||||
|
ansible.builtin.blockinfile: |
||||||
|
path: /home/webapps/.ssh/config |
||||||
|
create: yes |
||||||
|
mode: '0600' |
||||||
|
marker: "# {mark} ANSIBLE MANAGED: git.sgeboers.nl" |
||||||
|
block: | |
||||||
|
Host git.sgeboers.nl |
||||||
|
User git |
||||||
|
Port 222 |
||||||
|
IdentityFile /home/webapps/.ssh/ed25519 |
||||||
|
|
||||||
|
- name: ensure git.sgeboers.nl is in known_hosts |
||||||
|
ansible.builtin.known_hosts: |
||||||
|
name: "[git.sgeboers.nl]:222" |
||||||
|
key: "{{ lookup('pipe', 'ssh-keyscan -p 222 git.sgeboers.nl') }}" |
||||||
|
state: present |
||||||
|
|
||||||
|
- name: pull latest code |
||||||
|
ansible.builtin.git: |
||||||
|
repo: ssh://git@git.sgeboers.nl:222/sgeboers/motief.git |
||||||
|
dest: ~/motief |
||||||
|
clone: yes |
||||||
|
force: yes |
||||||
|
key_file: /home/webapps/.ssh/ed25519 |
||||||
|
accept_newhostkey: yes |
||||||
|
|
||||||
|
- name: sync dependencies with uv |
||||||
|
ansible.builtin.shell: |
||||||
|
cmd: /home/webapps/.local/bin/uv sync |
||||||
|
chdir: ~/motief |
||||||
|
|
||||||
|
- name: stop existing streamlit process |
||||||
|
ansible.builtin.shell: |
||||||
|
cmd: pkill -f "streamlit run Home.py" || true |
||||||
|
ignore_errors: yes |
||||||
|
|
||||||
|
- name: ensure data directory exists on server |
||||||
|
ansible.builtin.file: |
||||||
|
path: /home/webapps/motief/data |
||||||
|
state: directory |
||||||
|
mode: '0755' |
||||||
|
|
||||||
|
- name: sync motions.db to server |
||||||
|
ansible.builtin.synchronize: |
||||||
|
src: ../data/motions.db |
||||||
|
dest: /home/webapps/motief/data/motions.db |
||||||
|
checksum: yes |
||||||
|
|
||||||
|
- name: start streamlit |
||||||
|
ansible.builtin.shell: |
||||||
|
cmd: nohup /home/webapps/.local/bin/uv run streamlit run Home.py --server.port=8501 --server.address=0.0.0.0 --server.headless=true --server.enableCORS=false & |
||||||
|
chdir: ~/motief |
||||||
|
|
||||||
|
- name: wait for streamlit to be ready |
||||||
|
ansible.builtin.uri: |
||||||
|
url: http://127.0.0.1:8501/_stcore/health |
||||||
|
method: GET |
||||||
|
status_code: 200 |
||||||
|
retries: 30 |
||||||
|
delay: 2 |
||||||
@ -0,0 +1 @@ |
|||||||
|
sgeboers.nl ansible_user=webapps |
||||||
Loading…
Reference in new issue