summaryrefslogtreecommitdiff
path: root/roles/jenkins-master/tasks/main.yml
blob: 188aedb6d50cf01bab3272a0e667cd551586508d (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
---
- name: Ensure data volume is owned by jenkins
  file:
    path: "{{jenkins_master_data_volume}}"
    state: directory
    owner: 1000
    group: 1000
    recurse: yes
    follow: no

# This is a *dead* symlink on the host, that becomes active when attached to the docker image.
# This allows us to have our plugins installed in the docker image instead on the host.
- name: Ensure data volume has plugins symlink
  file:
    dest: "{{jenkins_master_data_volume}}/plugins"
    src: /var/jenkins_plugins
    state: link
    force: yes

# This controls images available on the system since
#  we don't allow docker_container to do its own pulls
- name: Pull latest images from upstream repo
  docker_image:
    name: "{{jenkins_master_image}}"
    state: present
    force: True
  when: jenkins_upgrade is defined

- name: Create jenkins data volume container
  docker_container:
    name: "{{jenkins_master_data_container_name}}"
    image: "{{jenkins_master_image}}"
    pull: False
    ignore_image: "{{not(jenkins_upgrade is defined)}}"
    state: present

- name: Create jenkins container
  docker_container:
    name: "{{jenkins_master_container_name}}"
    image: "{{jenkins_master_image}}"
    pull: False
    ignore_image: "{{not(jenkins_upgrade is defined)}}"
    state: started
    log_driver: journald
    restart_policy: unless-stopped
    published_ports:
      - "{{jenkins_master_port}}:{{jenkins_master_port}}"
      - "{{jenkins_master_slaves_port}}:{{jenkins_master_slaves_port}}"
      - "{{jenkins_master_sshd_port}}:{{jenkins_master_sshd_port}}"
      - "{{jenkins_jnlp_port}}:{{jenkins_jnlp_port}}"
    volumes:
      - "{{jenkins_master_data_volume}}:/var/jenkins_home"
    volumes_from:
      - "{{jenkins_master_data_container_name}}"
    etc_hosts:
      {
       "bkp-01.tcwglab":"51.148.40.55",
       "build-01.tcwglab build-01.tcwglab.linaro.org":"192.168.16.5",
       "build-02.tcwglab build-02.tcwglab.linaro.org":"192.168.16.6",
       "build-03.tcwglab build-03.tcwglab.linaro.org":"192.168.16.7",
       "build-04.tcwglab build-04.tcwglab.linaro.org":"192.168.16.8",
       "build-05.tcwglab build-05.tcwglab.linaro.org":"192.168.16.9",
       "build-06.tcwglab build-06.tcwglab.linaro.org":"192.168.16.10",
       "build-07.tcwglab build-07.tcwglab.linaro.org":"192.168.16.11",
       "build-08.tcwglab build-08.tcwglab.linaro.org":"192.168.16.12",
       "apm-01.tcwglab apm-01.tcwglab.linaro.org":"192.168.16.20",
       "apm-02.tcwglab apm-02.tcwglab.linaro.org":"192.168.16.21",
       "test-armv8-01.tcwglab test-armv8-01.tcwglab.linaro.org":"192.168.16.24",
       "test-armv8-02.tcwglab test-armv8-02.tcwglab.linaro.org":"192.168.16.25",
       "bb-mustang-01.tcwglab aarch64-06.tcwglab":"192.168.16.91",
       "openjdk-apm1.tcwglab aarch64-08.tcwglab":"192.168.16.92",
       "tcwg-tx1-01.tcwglab tx1-01.tcwglab.linaro.org":"192.168.18.101",
       "tcwg-tx1-02.tcwglab tx1-02.tcwglab.linaro.org":"192.168.18.102",
       "tcwg-tx1-03.tcwglab tx1-03.tcwglab.linaro.org":"192.168.18.103",
       "tcwg-tx1-04.tcwglab tx1-04.tcwglab.linaro.org":"192.168.18.104",
       "tcwg-tx1-05.tcwglab tx1-05.tcwglab.linaro.org":"192.168.18.105",
       "tcwg-bmk-tx1-06.tcwglab bmk-tx1-06.tcwglab.linaro.org":"192.168.18.106",
       "tcwg-bmk-tx1-07.tcwglab bmk-tx1-07.tcwglab.linaro.org":"192.168.18.107",
       "tcwg-bmk-tx1-08.tcwglab bmk-tx1-08.tcwglab.linaro.org":"192.168.18.108",
       "tcwg-tk1-01.tcwglab tk1-01.tcwglab.linaro.org":"192.168.18.151",
       "tcwg-tk1-02.tcwglab tk1-02.tcwglab.linaro.org":"192.168.18.152",
       "tcwg-tk1-03.tcwglab tk1-03.tcwglab.linaro.org":"192.168.18.153",
       "tcwg-tk1-04.tcwglab tk1-04.tcwglab.linaro.org":"192.168.18.154",
       "tcwg-tk1-05.tcwglab tk1-05.tcwglab.linaro.org":"192.168.18.155",
       "tcwg-bmk-tk1-06.tcwglab bmk-tk1-06.tcwglab.linaro.org":"192.168.18.156",
       "tcwg-bmk-tk1-07.tcwglab bmk-tk1-07.tcwglab.linaro.org":"192.168.18.157",
       "tcwg-bmk-tk1-08.tcwglab bmk-tk1-08.tcwglab.linaro.org":"192.168.18.158",
       "tcwg-tk1-09.tcwglab tk1-09.tcwglab.linaro.org":"192.168.18.159",
       "dev-x86-01.tcwglab dev-x86-01.tcwglab.linaro.org":"192.168.17.10",
       "dev-x86-02.tcwglab dev-x86-02.tcwglab.linaro.org":"192.168.17.15",
       "x86-64-01-art.tcwglab x86-64-01-art.tcwglab.linaro.org":"192.168.36.10",
       "x86-64-02-art.tcwglab x86-64-02-art.tcwglab.linaro.org":"192.168.36.15",
       "macos-01-art.tcwglab macos-01-art.tcwglab.linaro.org":"192.168.36.51"
      }

- name: Wait for Jenkins starts
  wait_for:
    port: 8080
    delay: 10