Merge pull request #54 from lagooj/feat/manage_env_vars_systemd
Manage env vars
This commit is contained in:
		
						commit
						f51bee4da0
					
				@ -197,6 +197,10 @@ prometheus:
 | 
			
		||||
          source: https://github.com/wrouesnel/postgres_exporter/releases/download/v0.8.0/postgres_exporter_v0.8.0_linux-amd64.tar.gz
 | 
			
		||||
          skip_verify: true
 | 
			
		||||
 | 
			
		||||
      mysqld_exporter:
 | 
			
		||||
        service:
 | 
			
		||||
          env:
 | 
			
		||||
            - 'DATA_SOURCE_NAME=foo:bar@/'
 | 
			
		||||
  linux:
 | 
			
		||||
    # 'Alternatives system' priority: zero disables (default)
 | 
			
		||||
    # yamllint disable-line rule:braces
 | 
			
		||||
 | 
			
		||||
@ -126,6 +126,7 @@ prometheus-archive-install-{{ name }}-managed-service:
 | 
			
		||||
        name: {{ name }}
 | 
			
		||||
        user: {{ name }}
 | 
			
		||||
        group: {{ name }}
 | 
			
		||||
        env: {{ p.pkg.component[name]['service'].get('env', [])|tojson }}
 | 
			
		||||
        workdir: {{ p.dir.var }}/{{ name }}
 | 
			
		||||
        stop: ''
 | 
			
		||||
               {%- if name in ('node_exporter', 'consul_exporter') or 'config_file' not in p.pkg.component[name] %}
 | 
			
		||||
 | 
			
		||||
@ -8,6 +8,9 @@ After=
 | 
			
		||||
Documentation=https://github.com/saltstack-formulas/prometheus-formula
 | 
			
		||||
 | 
			
		||||
[Service]
 | 
			
		||||
{% for var in env %}
 | 
			
		||||
Environment={{ var }}
 | 
			
		||||
{% endfor %}
 | 
			
		||||
User={{ user }}
 | 
			
		||||
Group={{ group }}
 | 
			
		||||
WorkingDirectory={{ workdir }}
 | 
			
		||||
 | 
			
		||||
@ -10,12 +10,14 @@ control 'prometheus components' do
 | 
			
		||||
    node_exporter_service = 'prometheus-node-exporter'
 | 
			
		||||
    php_fpm_exporter_service = 'php-fpm_exporter'
 | 
			
		||||
    postgres_exporter_service = 'prometheus-postgres-exporter'
 | 
			
		||||
    mysqld_exporter_service = 'prometheus-mysqld-exporter'
 | 
			
		||||
  else
 | 
			
		||||
    service_dir = '/usr/lib/systemd/system'
 | 
			
		||||
    alert_manager_service = 'alertmanager'
 | 
			
		||||
    node_exporter_service = 'node_exporter'
 | 
			
		||||
    php_fpm_exporter_service = 'php-fpm_exporter'
 | 
			
		||||
    postgres_exporter_service = 'postgres_exporter'
 | 
			
		||||
    mysqld_exporter_service = 'mysqld_exporter'
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  # describe package('cron') do
 | 
			
		||||
@ -45,6 +47,12 @@ control 'prometheus components' do
 | 
			
		||||
  describe user('postgres_exporter') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
  end
 | 
			
		||||
  describe group('mysqld_exporter') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
  end
 | 
			
		||||
  describe user('mysqld_exporter') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
  end
 | 
			
		||||
  describe directory('/var/lib/prometheus') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
  end
 | 
			
		||||
@ -131,6 +139,25 @@ control 'prometheus components' do
 | 
			
		||||
    its('group') { should eq 'root' }
 | 
			
		||||
    its('mode') { should cmp '0644' }
 | 
			
		||||
  end
 | 
			
		||||
  describe directory('/opt/prometheus/mysqld_exporter-v0.12.1') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
    its('group') { should eq 'root' }
 | 
			
		||||
  end
 | 
			
		||||
  describe file('/opt/prometheus/mysqld_exporter-v0.12.1/mysqld_exporter') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
    its('group') { should eq 'root' }
 | 
			
		||||
  end
 | 
			
		||||
  describe directory('/var/lib/prometheus/mysqld_exporter') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
    its('group') { should eq 'mysqld_exporter' }
 | 
			
		||||
  end
 | 
			
		||||
  describe file("#{service_dir}/#{mysqld_exporter_service}.service") do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
    its('content') { should match 'Environment=DATA_SOURCE_NAME=foo:bar@/' }
 | 
			
		||||
    its('group') { should eq 'root' }
 | 
			
		||||
    its('mode') { should cmp '0644' }
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe file('/usr/local/sbin/alertmanager') do
 | 
			
		||||
    it { should exist }
 | 
			
		||||
    its('group') { should eq 'root' }
 | 
			
		||||
 | 
			
		||||
@ -17,6 +17,7 @@ prometheus:
 | 
			
		||||
      - consul_exporter
 | 
			
		||||
      - php-fpm_exporter
 | 
			
		||||
      - postgres_exporter
 | 
			
		||||
      - mysqld_exporter
 | 
			
		||||
      # - memcached_exporter  # not in upstream repo, only archive
 | 
			
		||||
 | 
			
		||||
  exporters:
 | 
			
		||||
@ -100,6 +101,13 @@ prometheus:
 | 
			
		||||
          # This is to test that any fancy name we use, will work in archive mode
 | 
			
		||||
          name: my-fancy-consul-exporter-service
 | 
			
		||||
 | 
			
		||||
      mysqld_exporter:
 | 
			
		||||
        service:
 | 
			
		||||
          args:
 | 
			
		||||
            web.listen-address: 0.0.0.0:9192
 | 
			
		||||
          env:
 | 
			
		||||
            - 'DATA_SOURCE_NAME=foo:bar@/'
 | 
			
		||||
 | 
			
		||||
      prometheus:
 | 
			
		||||
        service:
 | 
			
		||||
          args:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user