Refactor setup server basepull/315/head
| @@ -42,6 +42,14 @@ matrix_docker_network: "matrix" | |||
| # matrix domain (`matrix_server_fqn_matrix`). | |||
| matrix_well_known_matrix_server_enabled: true | |||
| # Controls whether Docker is automatically installed. | |||
| # If you change this to false you must install and update Docker manually. | |||
| matrix_docker_installation_enabled: true | |||
| # Controls the Docker package that is installed. | |||
| # Possible values are "docker-ce" (default) and "docker.io" (Debian). | |||
| matrix_docker_package_name: docker-ce | |||
| # Variables to Control which parts of our roles run. | |||
| run_postgres_import: true | |||
| run_postgres_upgrade: true | |||
| @@ -7,7 +7,7 @@ | |||
| tags: | |||
| - setup-all | |||
| - import_tasks: "{{ role_path }}/tasks/setup_server_base.yml" | |||
| - import_tasks: "{{ role_path }}/tasks/server_base/setup.yml" | |||
| when: run_setup|bool | |||
| tags: | |||
| - setup-all | |||
| @@ -0,0 +1,19 @@ | |||
| --- | |||
| - include_tasks: "{{ role_path }}/tasks/server_base/setup_centos.yml" | |||
| when: ansible_distribution == 'CentOS' | |||
| - include_tasks: "{{ role_path }}/tasks/server_base/setup_debian.yml" | |||
| when: ansible_os_family == 'Debian' | |||
| - name: Ensure Docker is started and autoruns | |||
| service: | |||
| name: docker | |||
| state: started | |||
| enabled: yes | |||
| - name: Ensure ntpd is started and autoruns | |||
| service: | |||
| name: "{{ 'ntpd' if ansible_os_family == 'RedHat' else 'ntp' }}" | |||
| state: started | |||
| enabled: yes | |||
| @@ -0,0 +1,35 @@ | |||
| --- | |||
| - name: Ensure Docker repository is enabled | |||
| template: | |||
| src: "{{ role_path }}/files/yum.repos.d/{{ item }}" | |||
| dest: "/etc/yum.repos.d/{{ item }}" | |||
| owner: "root" | |||
| group: "root" | |||
| mode: 0644 | |||
| with_items: | |||
| - docker-ce.repo | |||
| when: matrix_docker_installation_enabled|bool and matrix_docker_package_name == 'docker-ce' | |||
| - name: Ensure Docker's RPM key is trusted | |||
| rpm_key: | |||
| state: present | |||
| key: https://download.docker.com/linux/centos/gpg | |||
| when: matrix_docker_installation_enabled|bool and matrix_docker_package_name == 'docker-ce' | |||
| - name: Ensure yum packages are installed | |||
| yum: | |||
| name: | |||
| - bash-completion | |||
| - docker-python | |||
| - ntp | |||
| - fuse | |||
| state: latest | |||
| update_cache: yes | |||
| - name: Ensure Docker is installed | |||
| yum: | |||
| name: | |||
| - "{{ matrix_docker_package_name }}" | |||
| state: latest | |||
| when: matrix_docker_installation_enabled|bool | |||
| @@ -0,0 +1,42 @@ | |||
| --- | |||
| - name: Ensure APT usage dependencies are installed | |||
| apt: | |||
| name: | |||
| - apt-transport-https | |||
| - ca-certificates | |||
| state: present | |||
| update_cache: yes | |||
| - name: Ensure Docker's APT key is trusted | |||
| apt_key: | |||
| url: https://download.docker.com/linux/ubuntu/gpg | |||
| id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 | |||
| state: present | |||
| register: add_repository_key | |||
| ignore_errors: true | |||
| when: matrix_docker_installation_enabled|bool and matrix_docker_package_name == 'docker-ce' | |||
| - name: Ensure Docker repository is enabled | |||
| apt_repository: | |||
| repo: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable" | |||
| state: present | |||
| update_cache: yes | |||
| when: matrix_docker_installation_enabled|bool and matrix_docker_package_name == 'docker-ce' | |||
| - name: Ensure APT packages are installed | |||
| apt: | |||
| name: | |||
| - bash-completion | |||
| - python-docker | |||
| - ntp | |||
| - fuse | |||
| state: latest | |||
| update_cache: yes | |||
| - name: Ensure Docker is installed | |||
| apt: | |||
| name: | |||
| - "{{ matrix_docker_package_name }}" | |||
| state: latest | |||
| when: matrix_docker_installation_enabled|bool | |||
| @@ -1,90 +0,0 @@ | |||
| --- | |||
| - name: Ensure Docker repository is enabled (CentOS) | |||
| template: | |||
| src: "{{ role_path }}/files/yum.repos.d/{{ item }}" | |||
| dest: "/etc/yum.repos.d/{{ item }}" | |||
| owner: "root" | |||
| group: "root" | |||
| mode: 0644 | |||
| with_items: | |||
| - docker-ce.repo | |||
| when: ansible_distribution == 'CentOS' | |||
| - name: Ensure Docker's RPM key is trusted | |||
| rpm_key: | |||
| state: present | |||
| key: https://download.docker.com/linux/centos/gpg | |||
| when: ansible_distribution == 'CentOS' | |||
| - name: Ensure yum packages are installed (CentOS) | |||
| yum: | |||
| name: | |||
| - bash-completion | |||
| - docker-ce | |||
| - docker-python | |||
| - ntp | |||
| - fuse | |||
| state: latest | |||
| update_cache: yes | |||
| when: ansible_distribution == 'CentOS' | |||
| - name: Ensure APT usage dependencies are installed (Debian) | |||
| apt: | |||
| name: | |||
| - apt-transport-https | |||
| - ca-certificates | |||
| state: present | |||
| update_cache: yes | |||
| when: ansible_os_family == 'Debian' | |||
| - name: Gather package facts (Debian) | |||
| package_facts: | |||
| when: ansible_os_family == 'Debian' | |||
| - name: Ensure Docker's APT key is trusted (Debian) | |||
| apt_key: | |||
| url: https://download.docker.com/linux/ubuntu/gpg | |||
| id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 | |||
| state: present | |||
| register: add_repository_key | |||
| ignore_errors: true | |||
| when: ansible_os_family == 'Debian' and 'docker.io' not in ansible_facts.packages | |||
| - name: Ensure Docker repository is enabled (Debian) | |||
| apt_repository: | |||
| repo: "deb [arch=amd64] https://download.docker.com/linux/{{ ansible_distribution|lower }} {{ ansible_distribution_release }} stable" | |||
| state: present | |||
| update_cache: yes | |||
| when: ansible_os_family == 'Debian' and 'docker.io' not in ansible_facts.packages | |||
| - name: Ensure APT packages are installed (Debian) | |||
| apt: | |||
| name: | |||
| - bash-completion | |||
| - python-docker | |||
| - ntp | |||
| - fuse | |||
| state: latest | |||
| update_cache: yes | |||
| when: ansible_os_family == 'Debian' | |||
| - name: Ensure docker-ce is installed (Debian) | |||
| apt: | |||
| name: | |||
| - docker-ce | |||
| state: latest | |||
| update_cache: yes | |||
| when: ansible_os_family == 'Debian' and 'docker.io' not in ansible_facts.packages | |||
| - name: Ensure Docker is started and autoruns | |||
| service: | |||
| name: docker | |||
| state: started | |||
| enabled: yes | |||
| - name: Ensure ntpd is started and autoruns | |||
| service: | |||
| name: "{{ 'ntpd' if ansible_os_family == 'RedHat' else 'ntp' }}" | |||
| state: started | |||
| enabled: yes | |||