summaryrefslogtreecommitdiffstats
path: root/roles/jenkins/master/tasks/main.yml
blob: a9a6a7a3019696305abe97322baccb935cb859e2 (plain)
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
- name: install jenkins-binary-plugins copr repo
  copy: >
    src="jenkins-binary-plugins.repo"
    dest="/etc/yum.repos.d/"
  tags:
  - jenkins
  - jenkins/master
  - config
  - packages
  - yumrepos

- name: install packages
  dnf: name={{ item }} state=installed
  with_items:
  - jenkins
  - jenkins-openid-plugin
  - git
  # binary plugins from copr repo
#  - jenkins-bazaar-plugin
#  - jenkins-chucknorris-plugin
  - jenkins-cobertura-plugin
#  - jenkins-cvs-plugin
  - jenkins-external-monitor-job-plugin
  - jenkins-git-client-plugin
  - jenkins-git-plugin
#  - jenkins-instant-messaging-plugin
#  - jenkins-ldap-plugin
  - jenkins-maven-plugin-plugin
#  - jenkins-mercurial-plugin
  - jenkins-python-plugin
  - jenkins-scm-api-plugin
  - jenkins-ssh-agent-plugin
  - jenkins-translation-plugin
  - jenkins-violations-plugin
  - jenkins-xunit-plugin
  tags:
  - jenkins
  - jenkins/master
  - packages

- name: mount jenkins persistent storage
  mount: name=/var/lib/jenkins src='LABEL=jenkins' fstype=ext4 state=mounted
  tags:
  - jenkins
  - jenkins/master

- name: Install custom jenkins plugins (from ansible bigfiles)
  copy: src="{{ bigfiles }}/jenkins/{{ item }}.hpi" dest=/var/lib/jenkins/plugins/{{ item }}.hpi
  with_items:
  - fedmsg
  - description-setter
  notify:
    - restart jenkins
  tags:
   - jenkins
   - jenkins/master
   - config

- name: install jenkins launcher config file
  copy: >
    src="jenkins.conf"
    dest="/etc/sysconfig/jenkins"
  notify:
  - restart jenkins
  tags:
  - jenkins
  - jenkins/master
  - config

- name: install jenkins master config files
  copy: >
    src="{{ item }}"
    dest="/var/lib/jenkins/{{ item }}"
  with_items:
  - config.xml
  - credentials.xml
  - hudson.tasks.Mailer.xml
  notify:
  - restart jenkins
  tags:
  - jenkins
  - jenkins/master
  - config

- name: create directories for jenkins slaves config files
  file: >
    path="/var/lib/jenkins/nodes/{{ item.name }}"
    state=directory
  with_items: "{{ slaves }}"
  tags:
  - jenkins
  - jenkins/master
  - config

- name: install jenkins slaves config files
  template: >
    src="slave-config.xml.j2"
    dest="/var/lib/jenkins/nodes/{{ item.name }}/config.xml"
  with_items: "{{ slaves }}"
  notify:
  - restart jenkins
  tags:
  - jenkins
  - jenkins/master
  - config

- name: install private ssh key
  copy: src="{{ private }}/files/jenkins/ssh/jenkins_master" dest=/etc/jenkins/id_rsa mode=400 owner=jenkins group=jenkins
  tags:
  - jenkins
  - jenkins/master
  - config

- name: enable jenkins service to start on boot
  service: name=jenkins state=started enabled=true
  tags:
  - jenkins
  - jenkins/master
  - service

- name: create /srv/web for website role to use
  file: >
    path="/srv/web"
    state=directory
  tags:
  - jenkins
  - jenkins/master
  - config

- name: install jenkins httpd config
  template: >
    src="jenkins-httpd.conf.j2"
    dest="/etc/httpd/conf.d/jenkins-httpd.conf"
  notify:
  - restart apache
  tags:
  - jenkins
  - jenkins/master
  - config

- name: set sebooleans so proxying works
  seboolean: name=httpd_can_network_relay state=true persistent=true
  tags:
  - jenkins
  - jenkins/master
  - config