/
init.sls
81 lines (75 loc) · 2.19 KB
/
init.sls
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
{% from "jenkins/map.jinja" import jenkins with context %}
{% set extra_groups = jenkins.extra_groups -%}
jenkins_group:
group.present:
- name: {{ jenkins.group }}
- system: True
jenkins_user:
user.present:
- name: {{ jenkins.user }}
- groups:
- {{ jenkins.group }}
{% for group in extra_groups -%}
- {{ group }}
{% endfor %}
- system: True
- home: {{ jenkins.home }}
- shell: /bin/bash
- require:
- group: jenkins_group
{% for dir in ['/var/log/jenkins','/var/cache/jenkins',jenkins.home] %}
{{ dir }}:
file.directory:
- user: {{ jenkins.user }}
- group: {{ jenkins.group }}
- mode: 0755
- makedirs: True
- require:
- user: jenkins_user
- group: jenkins_group
{% endfor %}
jenkins:
{% if grains['os_family'] in ['RedHat', 'Debian'] %}
{% set repo_suffix = '' %}
{% if jenkins.stable %}
{% set repo_suffix = '-stable' %}
{% endif %}
pkgrepo.managed:
- humanname: Jenkins upstream package repository
{% if grains['os_family'] == 'RedHat' %}
- baseurl: https://pkg.jenkins.io/redhat{{ repo_suffix }}
- gpgkey: https://pkg.jenkins.io/redhat{{ repo_suffix }}/jenkins.io.key
{% elif grains['os_family'] == 'Debian' %}
- file: {{jenkins.deb_apt_source}}
- name: deb https://pkg.jenkins.io/debian{{ repo_suffix }} binary/
- key_url: https://pkg.jenkins.io/debian{{ repo_suffix }}/jenkins.io.key
{% endif %}
- require_in:
- pkg: jenkins
{% endif %}
pkg.installed:
- pkgs: {{ jenkins.pkgs|json }}
service.running:
- enable: True
- watch:
- pkg: jenkins
{% if grains['os_family'] in ['RedHat', 'Debian'] %}
- file: jenkins config
{% endif %}
{% if grains['os_family'] in ['RedHat', 'Debian'] %}
jenkins config:
file.managed:
{% if grains['os_family'] == 'RedHat' %}
- name: /etc/sysconfig/jenkins
- source: salt://jenkins/files/RedHat/jenkins.conf
{% elif grains['os_family'] == 'Debian' %}
- name: /etc/default/jenkins
- source: salt://jenkins/files/Debian/jenkins.conf
{% endif %}
- template: jinja
- user: root
- group: root
- mode: 400
- require:
- pkg: jenkins
{% endif %}