From 73845143a5e0d2e10a9a2eb4c43d8c4972bbe1d6 Mon Sep 17 00:00:00 2001 From: Riku Voipio Date: Thu, 8 Mar 2018 12:06:07 +0200 Subject: OBS: toplevel playbooks These have apparently been forgotten. The main missing bit is adding the machines listed here into LDAP, to avoid me being SPOF in managing OBS. Change-Id: I37eb7703846eb08d8290ca80f6b7c6d41c45149d Reviewed-on: https://review.linaro.org/24267 Reviewed-by: Benjamin Copeland --- host_vars/obs-bastion-cn1.linaro.cloud | 5 ++ host_vars/obs-bastion-us1.linaro.cloud | 1 + host_vars/obs-server-cn1.linaro.cloud | 1 + host_vars/obs-server-us1.linaro.cloud | 1 + obs-cn1.yml | 85 +++++++++++++++++++++++++++++++++ obs-us1.yml | 87 ++++++++++++++++++++++++++++++++++ 6 files changed, 180 insertions(+) create mode 100644 host_vars/obs-bastion-cn1.linaro.cloud create mode 100644 host_vars/obs-server-cn1.linaro.cloud create mode 100644 host_vars/obs-server-us1.linaro.cloud create mode 100644 obs-cn1.yml create mode 100644 obs-us1.yml diff --git a/host_vars/obs-bastion-cn1.linaro.cloud b/host_vars/obs-bastion-cn1.linaro.cloud new file mode 100644 index 00000000..24851aa1 --- /dev/null +++ b/host_vars/obs-bastion-cn1.linaro.cloud @@ -0,0 +1,5 @@ +obsdata_fstype: ext4 +obsdata_dev: /dev/sdb +obsbackup_fstype: ext4 +obsbackup_dev: /dev/sdc +debian_mirror: http://mirrors.ustc.edu.cn/debian/ diff --git a/host_vars/obs-bastion-us1.linaro.cloud b/host_vars/obs-bastion-us1.linaro.cloud index f6cd4ec2..a80a7d4d 100644 --- a/host_vars/obs-bastion-us1.linaro.cloud +++ b/host_vars/obs-bastion-us1.linaro.cloud @@ -2,3 +2,4 @@ obsdata_fstype: ext4 obsdata_dev: /dev/sdb obsbackup_fstype: ext4 obsbackup_dev: /dev/sdc +debian_mirror: http://deb.debian.org/debian diff --git a/host_vars/obs-server-cn1.linaro.cloud b/host_vars/obs-server-cn1.linaro.cloud new file mode 100644 index 00000000..40cd3e98 --- /dev/null +++ b/host_vars/obs-server-cn1.linaro.cloud @@ -0,0 +1 @@ +hostname: obs-dev.linaro.org diff --git a/host_vars/obs-server-us1.linaro.cloud b/host_vars/obs-server-us1.linaro.cloud new file mode 100644 index 00000000..689ce4dc --- /dev/null +++ b/host_vars/obs-server-us1.linaro.cloud @@ -0,0 +1 @@ +hostname: obs.linaro.org diff --git a/obs-cn1.yml b/obs-cn1.yml new file mode 100644 index 00000000..329551f8 --- /dev/null +++ b/obs-cn1.yml @@ -0,0 +1,85 @@ +# Deploy staging OBS on devcloud +--- +- name: Create staging machines with OpenStack + hosts: localhost + gather_facts: false + tasks: + - name: create OBS bastion server + os_server: + state: present + name: obs-bastion-cn1.linaro.cloud + image: Official Debian Stretch + key_name: Riku Linaro + wait: yes + flavor: m1.small + auto_floating_ip: yes + network: obs-net + meta: + hostname: obs-bastion-cn1.linaro.cloud + - name: Create obs_data volume + os_volume: + state: present + size: 400 + display_name: obs_data + - name: Create obs_backup volume + os_volume: + state: present + size: 400 + display_name: obs_backup + - name: Attach obs_data volume to obs server + os_server_volume: + state: present + volume: obs_data + server: obs-bastion-cn1.linaro.cloud + device: "{{ hostvars['obs-bastion-cn1.linaro.cloud'].obsdata_dev }}" + - name: Attach obs_backup volume to obs server + os_server_volume: + state: present + volume: obs_backup + server: obs-bastion-cn1.linaro.cloud + device: "{{ hostvars['obs-bastion-cn1.linaro.cloud'].obsbackup_dev }}" + - name: Deploy OBS worker + os_server: + state: present + name: obs-worker-cn1.linaro.cloud + image: Official Debian Stretch + key_name: Riku Linaro + wait: yes + flavor: m1.small + auto_floating_ip: yes + network: obs-net + meta: + hostname: obs-worker-cn1.linaro.cloud + +- name: Configure firewall and OBS container + hosts: obs-bastion-cn1.linaro.cloud + become: yes + roles: + - role: obs-bastion + worker_ip: + - 192.168.1.1/24 + - role: systemd-container + container_name: obs + container_user: obs-admin + ssh_port: 2201 + +- name: Install OBS server + hosts: obs-server-cn1.linaro.cloud + become: yes + vars_files: + - "{{secrets_dir}}/host_vars/{{inventory_hostname}}" + roles: + - role: letsencrypt + email: riku.voipio@linaro.org + - role: obs + +- name: Install staging worker + hosts: obs-worker-cn1.linaro.cloud + become: yes + roles: + - role: obs-worker + OBS_IP: 192.168.1.10 + OBS_JOBS: 2 + OBS_PORT: 5454 + OBS_TMPFS: 0 + diff --git a/obs-us1.yml b/obs-us1.yml new file mode 100644 index 00000000..e9b5791e --- /dev/null +++ b/obs-us1.yml @@ -0,0 +1,87 @@ +# Deploy OBS on devcloud +--- +- name: Create Production OBS machines in OpenStack + hosts: localhost + gather_facts: false + tasks: + - name: create OBS bastion server + os_server: + state: present + name: obs-bastion-us1.linaro.cloud + image: Official Debian Stretch + key_name: Riku Linaro + wait: yes + flavor: m1.large + auto_floating_ip: yes + network: obs-net + meta: + hostname: obs-bastion-us1.linaro.cloud + - name: Create obs_data volume + os_volume: + state: present + size: 400 + display_name: obs_data + - name: Create obs_backup volume + os_volume: + state: present + size: 400 + display_name: obs_backup + - name: Attach obs_data volume to obs server + os_server_volume: + state: present + volume: obs_data + server: obs-bastion-us1.linaro.cloud + device: "{{ hostvars['obs-bastion-us1.linaro.cloud'].obsdata_dev }}" + - name: Attach obs_backup volume to obs server + os_server_volume: + state: present + volume: obs_backup + server: obs-bastion-us1.linaro.cloud + device: "{{ hostvars['obs-bastion-us1.linaro.cloud'].obsbackup_dev }}" + - name: Deploy OBS worker + os_server: + state: present + name: obs-worker-us1.linaro.cloud + image: Official Debian Stretch + key_name: Riku Linaro + wait: yes + flavor: m1.tiny + auto_floating_ip: no + network: obs-net + meta: + hostname: obs-worker-us1.linaro.cloud + +- name: Configure firewall and OBS container + hosts: obs-bastion-us1.linaro.cloud + become: yes + roles: + - role: obs-bastion + worker_ip: + - 192.168.1.1/24 + - 10.20.0.1/24 + - 138.201.52.83 + - 64.28.99.105 + - role: systemd-container + container_name: obs + container_user: obs-admin + ssh_port: 2201 + +- name: Install OBS server + hosts: obs-server-us1.linaro.cloud + become: yes + vars_files: + - "{{secrets_dir}}/host_vars/{{inventory_hostname}}" + roles: + - role: restic + backup_host: 211.148.24.209 + backup_user: obs-backup + backup_db: + - obsapi + backup_dirs: + - /srv/obs + - /etc + - role: letsencrypt + hostname: obs.linaro.org + email: riku.voipio@linaro.org + - role: obs + -- cgit v1.2.3