Prometheus Install
module.exports = header: 'Prometheus Monitor Install', handler: ({options}) ->
tmp_archive_location = "/var/tmp/ryba/prometheus.tar.gz"
Identities
@system.group header: 'Group', options.group
@system.user header: 'User', options.user
IPTables
Service | Port | Proto | Parameter |
Prometheus UI | 3000 | http | 9091 |
@tools.iptables
header: 'IPTables'
if: options.iptables
rules: [
{ chain: 'INPUT', jump: 'ACCEPT', dport: options.port , protocol: 'tcp', state: 'NEW', comment: "Prometheus UI" }
]
Layout
@system.mkdir
target: options.conf_dir
uid: options.user.name
gid: options.group.name
@system.mkdir
target: options.log_dir
uid: options.user.name
gid: options.group.name
@system.mkdir
target: options.run_dir
uid: options.user.name
gid: options.group.name
@system.mkdir
target: options.storage.path
uid: options.user.name
gid: options.group.name
Packages
@call
if_os: name: ['redhat','centos'], version: '7'
, ->
@service.init
header: 'Systemd Script'
target: '/usr/lib/systemd/system/prometheus-monitor.service'
source: "#{__dirname}/../resources/prometheus-monitor-systemd.j2"
local: true
context: options
mode: 0o0640
@system.tmpfs
header: 'Run dir'
mount: options.run_dir
uid: options.user.name
gid: options.group.name
perm: '0755'
@file.download
source: options.source
target: tmp_archive_location
@system.mkdir
target: options.install_dir
@tools.extract
source: tmp_archive_location
target: options.install_dir
preserve_owner: false
strip: 1
@system.link
source: options.install_dir
target: options.latest_dir
## SSL
@file.download
header: 'SSL Cacert'
source: options.ssl.cacert.source
target: options.config['tls_config']['ca_file']
local: options.ssl.cacert.local
@file.download
header: 'SSL Cert'
source: options.ssl.cert.source
target: options.config['tls_config']['cert_file']
local: options.ssl.cert.local
@file.download
header: 'SSL Key'
source: options.ssl.key.source
target: options.config['tls_config']['key_file']
local: options.ssl.key.local
Configuration
@file.yaml
target: "#{options.conf_dir}/prometheus.yaml"
content: options.config
uid: options.user.name
gid: options.group.name
backup: true
merge: false