-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathmain.yml
More file actions
90 lines (81 loc) · 2.56 KB
/
main.yml
File metadata and controls
90 lines (81 loc) · 2.56 KB
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
---
- name: Add backports repository
apt_repository:
filename: backports
repo: deb http://http.debian.net/debian jessie-backports main
state: present
update_cache: yes
when: ansible_distribution == 'Debian' and ansible_distribution_release == 'jessie'
- name: Install apt requirements
apt:
name: '{{ item }}'
state: present
with_items:
- ca-certificates-java=20161107~bpo8+1
- openjdk-8-jre-headless
- sudo
- name: correct java version selected
alternatives:
name: java
path: /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
- name: Ensure jenkins user
user:
name: '{{ jenkins_username }}'
home: '{{ jenkins_home }}'
shell: /bin/bash
state: present
- name: Make jenkins user sudoer
lineinfile:
dest: /etc/sudoers
state: present
line: '{{ jenkins_username }} ALL=(ALL:ALL) NOPASSWD:ALL'
validate: 'visudo -cf %s'
- name: Add master public key to authorized keys
authorized_key:
user: '{{ jenkins_username }}'
key: '{{ jenkins_authorized_key }}'
- name: Ensure jenkins home belongs to the user
file:
path: '{{ jenkins_home }}'
owner: '{{ jenkins_username}}'
recurse: yes
- name: Check previous node
jenkins_api:
jenkins_url: '{{ jenkins_master_url }}'
jenkins_username: '{{ jenkins_master_username }}'
jenkins_password: '{{ jenkins_master_password }}'
command: node_exists
args:
- '{{ jenkins_node_name or ansible_hostname }}'
register: result
when: not ansible_check_mode
- name: Delete previous node
jenkins_api:
jenkins_url: '{{ jenkins_master_url }}'
jenkins_username: '{{ jenkins_master_username }}'
jenkins_password: '{{ jenkins_master_password }}'
command: delete_node
args:
- '{{ jenkins_node_name or ansible_hostname }}'
when:
- not ansible_check_mode
- result.node_exists
- name: Create jenkins node
jenkins_api:
jenkins_url: '{{ jenkins_master_url }}'
jenkins_username: '{{ jenkins_master_username }}'
jenkins_password: '{{ jenkins_master_password }}'
command: create_node
args:
- '{{ jenkins_node_name or ansible_hostname }}'
kwargs:
numExecutors: '{{ jenkins_node_executors }}'
remoteFS: '{{ jenkins_home }}'
labels: '{{ jenkins_node_labels }}'
launcher: hudson.plugins.sshslaves.SSHLauncher
launcher_params:
port: "{{ jenkins_node_port }}"
username: '{{ jenkins_username }}'
credentialsId: '{{ jenkins_node_credentials_id }}'
host: '{{ (jenkins_node_host or ansible_eth0.ipv4.address)|trim }}'
when: not ansible_check_mode