Menu

NagVis Install

module.exports = header: 'NagVis Install', handler: (options) ->

IPTables

ServicePortProtoParameter
nagvis50000tcp

IPTables rules are only inserted if the parameter "iptables.action" is set to "start" (default value).

  @tools.iptables
    header: 'IPTables'
    rules: [
      chain: 'INPUT', jump: 'ACCEPT', dport: options.port, protocol: 'tcp', state: 'NEW', comment: "NagVis"
    ]
    if: options.iptables

Packages

  @call header: 'Packages', ->
    @service name: 'php'
    @service name: 'php-common'
    @service name: 'php-pdo'
    @service name: 'php-gd'
    @service name: 'php-mbstring'
    @service name: 'php-mysql'
    # @service name: 'php-php-gettext'
    @service name: 'graphviz-php'

Install

  @call unless_exec: "[ `cat #{options.install_dir}/version` = #{options.version} ]", header: 'Archive', ->
    @file.download
      source: options.source
      target: "/var/tmp/nagvis-#{options.version}.tar.gz"
    @tools.extract
      source: "/var/tmp/nagvis-#{options.version}.tar.gz"
    @system.chmod
      target: "/var/tmp/nagvis-#{options.version}/install.sh"
      mode: 0o755
    @system.execute
      cmd: """
      cd /var/tmp/nagvis-#{options.version};
      ./install.sh -n #{options.base_dir} -p #{options.install_dir} \
      -l 'tcp:#{options.livestatus_address}' -b mklivestatus -u #{options.httpd_user.name} -g #{options.httpd_group.name} -w /etc/httpd/conf.d -a y -q
      """
    @service.restart
      name: 'httpd'
    @file
      target: "#{options.install_dir}/version"
      content: "#{options.version}"
    @system.remove target: "/var/tmp/nagvis-#{options.version}.tar.gz"
    @system.remove target: "/var/tmp/nagvis-#{options.version}"

  write = ""
  for k, v of options.config
    write += "[#{k}]\n"
    for sk, sv of v
      write += "#{sk}=" + if typeof sv is 'string' then "\"#{sv}\"\n" else "#{sv}\n"
    write += "\n"
  @file
    target: "#{options.install_dir}/etc/options.ini.php"
    content: write
    backup: true

Dependencies

glob = require 'glob'
path = require 'path'