/
install_jenkins_worker.yml
83 lines (73 loc) · 2.44 KB
/
install_jenkins_worker.yml
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
---
- hosts: "{{ passed_in_hosts }}"
become: yes
remote_user: ec2-user
tasks:
- name: Generate SSH Keypair
openssh_keypair:
path: /home/ec2-user/.ssh/id_rsa
type: rsa
size: 2048
group: ec2-user
owner: ec2-user
- name: Add own key to authorized_keys file
shell: "cat /home/ec2-user/.ssh/id_rsa.pub >> /home/ec2-user/.ssh/authorized_keys && chmod 600 /home/ec2-user/.ssh/authorized_keys"
- name: Copy over Jenkins Worker Node creation payload xml
vars:
ipv4: "{{ ansible_default_ipv4.address }}"
template:
src: node.j2
dest: /home/ec2-user/node.xml
owner: ec2-user
mode: '0644'
- name: Read generated private key id_rsa
slurp:
src: /home/ec2-user/.ssh/id_rsa
register: pkey
- name: Copy over creds.xml and create Jenkins credential
vars:
priv_key: "{{ pkey['content'] | b64decode }}"
ipv4: "{{ ansible_default_ipv4.address }}"
template:
src: cred-privkey.j2
dest: /home/ec2-user/creds.xml
- name: install dependencies
yum:
name: "{{ package }} "
vars:
package:
- wget
- java-1.8.0-openjdk-devel
- git
- name: Get Jenkins CLI jar file
vars:
master: "{{ master_ip }}"
get_url:
url: "http://{{ master }}:8080/jnlpJars/jenkins-cli.jar"
dest: /home/ec2-user/jenkins-cli.jar
force: yes
register: download
ignore_errors: yes
until: download.status_code|default(200) == 200
retries: 5
delay: 5
- name: Allow execute perm to jenkins-cli.jar
file:
path: /home/ec2-user/jenkins-cli.jar
owner: ec2-user
group: ec2-user
mode: '0777'
- name: Place Jenkins Auth file
copy:
src: jenkins_auth
dest: /home/ec2-user/
owner: ec2-user
mode: '0600'
- name: Create Jenkins Credential
vars:
master: "{{ master_ip }}"
shell: "cat /home/ec2-user/creds.xml | java -jar /home/ec2-user/jenkins-cli.jar -auth @/home/ec2-user/jenkins_auth -s http://{{master}}:8080 create-credentials-by-xml system::system::jenkins _"
- name: Register node as worker
vars:
master: "{{ master_ip }}"
shell: 'cat /home/ec2-user/node.xml | java -jar /home/ec2-user/jenkins-cli.jar -auth @/home/ec2-user/jenkins_auth -s http://{{ master }}:8080 create-node'