mirror of
https://github.com/ardichoke/puppet-klipper.git
synced 2026-05-11 02:25:37 -04:00
Configure and start service
This commit is contained in:
11
REFERENCE.md
11
REFERENCE.md
@@ -12,7 +12,9 @@
|
|||||||
|
|
||||||
#### Private Classes
|
#### Private Classes
|
||||||
|
|
||||||
|
* `klipper::configure`: Handles configuration of klipper
|
||||||
* `klipper::install`: Perform baseline install of Klipper
|
* `klipper::install`: Perform baseline install of Klipper
|
||||||
|
* `klipper::service`: Manage the klipper service
|
||||||
|
|
||||||
## Classes
|
## Classes
|
||||||
|
|
||||||
@@ -37,6 +39,7 @@ The following parameters are available in the `klipper` class:
|
|||||||
* [`user`](#user)
|
* [`user`](#user)
|
||||||
* [`python_dir`](#python_dir)
|
* [`python_dir`](#python_dir)
|
||||||
* [`config_dir`](#config_dir)
|
* [`config_dir`](#config_dir)
|
||||||
|
* [`log_path`](#log_path)
|
||||||
|
|
||||||
##### <a name="src_path"></a>`src_path`
|
##### <a name="src_path"></a>`src_path`
|
||||||
|
|
||||||
@@ -78,3 +81,11 @@ The path to place klipper config files
|
|||||||
|
|
||||||
Default value: `"/home/${klipper::user}/klipper_config"`
|
Default value: `"/home/${klipper::user}/klipper_config"`
|
||||||
|
|
||||||
|
##### <a name="log_path"></a>`log_path`
|
||||||
|
|
||||||
|
Data type: `Stdlib::Absolutepath`
|
||||||
|
|
||||||
|
Where to store the klipper logs
|
||||||
|
|
||||||
|
Default value: `"/home/${klipper::user}/klipper_logs"`
|
||||||
|
|
||||||
|
|||||||
16
manifests/configure.pp
Normal file
16
manifests/configure.pp
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# @summary Handles configuration of klipper
|
||||||
|
#
|
||||||
|
# @api private
|
||||||
|
#
|
||||||
|
class klipper::configure {
|
||||||
|
file { $klipper::config_dir:
|
||||||
|
ensure => directory,
|
||||||
|
owner => $klipper::user,
|
||||||
|
mode => '0755',
|
||||||
|
}
|
||||||
|
file { "${klipper::config_dir}/printer.cfg":
|
||||||
|
ensure => file,
|
||||||
|
owner => $klipper::user,
|
||||||
|
mode => '0644',
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -10,6 +10,7 @@
|
|||||||
# @param user The account to run klipper under
|
# @param user The account to run klipper under
|
||||||
# @param python_dir The path to place the klipper python virtualenv
|
# @param python_dir The path to place the klipper python virtualenv
|
||||||
# @param config_dir The path to place klipper config files
|
# @param config_dir The path to place klipper config files
|
||||||
|
# @param log_path Where to store the klipper logs
|
||||||
#
|
#
|
||||||
class klipper (
|
class klipper (
|
||||||
String $version = 'present',
|
String $version = 'present',
|
||||||
@@ -17,6 +18,13 @@ class klipper (
|
|||||||
Stdlib::Absolutepath $src_path = "/home/${klipper::user}/klipper",
|
Stdlib::Absolutepath $src_path = "/home/${klipper::user}/klipper",
|
||||||
Stdlib::Absolutepath $python_dir = "/home/${klipper::user}/klippy-env",
|
Stdlib::Absolutepath $python_dir = "/home/${klipper::user}/klippy-env",
|
||||||
Stdlib::Absolutepath $config_dir = "/home/${klipper::user}/klipper_config",
|
Stdlib::Absolutepath $config_dir = "/home/${klipper::user}/klipper_config",
|
||||||
|
Stdlib::Absolutepath $log_path = "/home/${klipper::user}/klipper_logs",
|
||||||
) {
|
) {
|
||||||
contain klipper::install
|
contain klipper::install
|
||||||
|
contain klipper::configure
|
||||||
|
contain klipper::service
|
||||||
|
|
||||||
|
Class['klipper::install']
|
||||||
|
-> Class['klipper::configure']
|
||||||
|
-> Class['klipper::service']
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,4 +47,10 @@ class klipper::install {
|
|||||||
subscribe => Vcsrepo[$klipper::src_path],
|
subscribe => Vcsrepo[$klipper::src_path],
|
||||||
user => $klipper::user,
|
user => $klipper::user,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
file { $klipper::log_path:
|
||||||
|
ensure => directory,
|
||||||
|
owner => $klipper::user,
|
||||||
|
mode => '0755',
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
11
manifests/service.pp
Normal file
11
manifests/service.pp
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
# @summary Manage the klipper service
|
||||||
|
#
|
||||||
|
# @api private
|
||||||
|
#
|
||||||
|
class klipper::service {
|
||||||
|
systemd::unit_file { 'klipper.service':
|
||||||
|
content => template('klipper/klipper.service.erb'),
|
||||||
|
enable => true,
|
||||||
|
active => true,
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,6 +13,10 @@
|
|||||||
{
|
{
|
||||||
"name": "puppetlabs-vcsrepo",
|
"name": "puppetlabs-vcsrepo",
|
||||||
"version_requirement": ">= 5.0.0 < 6.0.0"
|
"version_requirement": ">= 5.0.0 < 6.0.0"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "puppet-systemd",
|
||||||
|
"version_requirement": ">= 3.1.0 < 4.0.0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"operatingsystem_support": [
|
"operatingsystem_support": [
|
||||||
|
|||||||
13
spec/classes/configure_spec.rb
Normal file
13
spec/classes/configure_spec.rb
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'klipper::configure' do
|
||||||
|
on_supported_os.each do |os, os_facts|
|
||||||
|
context "on #{os}" do
|
||||||
|
let(:facts) { os_facts }
|
||||||
|
|
||||||
|
it { is_expected.to compile }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
13
spec/classes/service_spec.rb
Normal file
13
spec/classes/service_spec.rb
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe 'klipper::service' do
|
||||||
|
on_supported_os.each do |os, os_facts|
|
||||||
|
context "on #{os}" do
|
||||||
|
let(:facts) { os_facts }
|
||||||
|
|
||||||
|
it { is_expected.to compile }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
23
templates/klipper.service.erb
Normal file
23
templates/klipper.service.erb
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# MANAGED BY PUPPET
|
||||||
|
# Systemd Klipper Service
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=Systemd Klipper Service
|
||||||
|
Documentation=https://www.klipper3d.org/
|
||||||
|
After=network.target
|
||||||
|
Wants=udev.target
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Environment=KLIPPER_CONFIG=<%= scope['klipper::config_dir'] %>/printer.cfg
|
||||||
|
Environment=KLIPPER_LOG=<%= scope['klipper::log_path'] %>/klippy.log
|
||||||
|
Environment=KLIPPER_SOCKET=/tmp/klippy_uds
|
||||||
|
Environment=KLIPPER_PRINTER=/tmp/printer
|
||||||
|
Type=simple
|
||||||
|
User=<%= scope['klipper::user'] %>
|
||||||
|
RemainAfterExit=yes
|
||||||
|
ExecStart=<%= scope['klipper::python_dir'] %>/bin/python <%= scope['klipper::src_path'] %>/klippy/klippy.py ${KLIPPER_CONFIG} -I ${KLIPPER_PRINTER} -l ${KLIPPER_LOG} -a ${KLIPPER_SOCKET}
|
||||||
|
Restart=always
|
||||||
|
RestartSec=10
|
||||||
Reference in New Issue
Block a user