Compare commits
5 commits
c147633510
...
2a4ec811ef
Author | SHA1 | Date | |
---|---|---|---|
Daniele Tricoli | 2a4ec811ef | ||
Daniele Tricoli | 6ddc413900 | ||
Daniele Tricoli | be9042b86e | ||
Daniele Tricoli | 3f99821ae7 | ||
Daniele Tricoli | 73cedffdff |
6
roles/octoprint/defaults/main.yml
Normal file
6
roles/octoprint/defaults/main.yml
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
octoprint_become: true
|
||||
octoprint_become_user: root
|
||||
|
||||
octoprint_version: 1.6.1
|
||||
octoprint_dir: /srv/octoprint
|
13
roles/octoprint/handlers/main.yml
Normal file
13
roles/octoprint/handlers/main.yml
Normal file
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
- name: systemctl daemon-reload
|
||||
systemd:
|
||||
daemon_reload: true
|
||||
become: "{{ octoprint_become }}"
|
||||
become_user: "{{ octoprint_become_user }}"
|
||||
|
||||
- name: systemctl restart octoprint
|
||||
systemd:
|
||||
name: octoprint.service
|
||||
state: restarted
|
||||
become: "{{ octoprint_become }}"
|
||||
become_user: "{{ octoprint_become_user }}"
|
56
roles/octoprint/tasks/main.yml
Normal file
56
roles/octoprint/tasks/main.yml
Normal file
|
@ -0,0 +1,56 @@
|
|||
---
|
||||
- block:
|
||||
|
||||
- name: install octoprint dependencies
|
||||
apt:
|
||||
name:
|
||||
- python3
|
||||
- python3-pip
|
||||
- virtualenv
|
||||
update_cache: true
|
||||
cache_valid_time: 3600
|
||||
|
||||
- name: ensure octoprint group exits
|
||||
group:
|
||||
name: octoprint
|
||||
system: true
|
||||
|
||||
- name: ensure octoprint user exists and has restrictive settings
|
||||
user:
|
||||
name: octoprint
|
||||
groups: octoprint
|
||||
password: "*"
|
||||
home: "{{ octoprint_dir }}"
|
||||
system: true
|
||||
shell: /usr/sbin/nologin
|
||||
|
||||
- name: install wheel and octoprint inside a virtualenv
|
||||
pip:
|
||||
name:
|
||||
- wheel
|
||||
- OctoPrint=={{ octoprint_version }}
|
||||
virtualenv: "{{ octoprint_dir }}"
|
||||
|
||||
- name: ensure octoprint owns "{{ octoprint_dir }}"
|
||||
file:
|
||||
path: "{{ octoprint_dir }}"
|
||||
state: directory
|
||||
recurse: true
|
||||
owner: octoprint
|
||||
group: octoprint
|
||||
|
||||
- name: install octoprint systemd unit file
|
||||
template:
|
||||
src: etc/systemd/system/octoprint.service.j2
|
||||
dest: /etc/systemd/system/octoprint.service
|
||||
notify:
|
||||
- systemctl daemon-reload
|
||||
|
||||
- name: ensure octoprint is enabled and started
|
||||
systemd:
|
||||
name: octoprint
|
||||
state: started
|
||||
enabled: true
|
||||
|
||||
become: "{{ octoprint_become }}"
|
||||
become_user: "{{ octoprint_become_user }}"
|
|
@ -0,0 +1,15 @@
|
|||
# Managed by Ansible
|
||||
[Unit]
|
||||
Description=OctoPrint
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
# WorkingDirectory={{ octoprint_dir }}
|
||||
ExecStart={{ octoprint_dir }}/bin/octoprint serve
|
||||
User=octoprint
|
||||
Group=octoprint
|
||||
Restart=on-failure
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
|
@ -88,7 +88,8 @@
|
|||
# - {role: ../roles/generate_certificate, become: true}
|
||||
# - {role: ../roles/gitea, become: true}
|
||||
# - ../roles/dokku
|
||||
- ../roles/znc
|
||||
# - ../roles/znc
|
||||
- ../roles/octoprint
|
||||
# The easy ports sequece is just for test. Also don't disable strict IP
|
||||
# filtering on production.
|
||||
# - {role: ../roles/knockd, ports: [3333, 4444, 5555], network_interface: eth1, filter_ip: ""}
|
||||
|
|
Loading…
Reference in a new issue