Refactor setup server basepull/315/head
| @@ -42,6 +42,14 @@ matrix_docker_network: "matrix" | |||||
| # matrix domain (`matrix_server_fqn_matrix`). | # matrix domain (`matrix_server_fqn_matrix`). | ||||
| matrix_well_known_matrix_server_enabled: true | 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. | # Variables to Control which parts of our roles run. | ||||
| run_postgres_import: true | run_postgres_import: true | ||||
| run_postgres_upgrade: true | run_postgres_upgrade: true | ||||
| @@ -7,7 +7,7 @@ | |||||
| tags: | tags: | ||||
| - setup-all | - setup-all | ||||
| - import_tasks: "{{ role_path }}/tasks/setup_server_base.yml" | |||||
| - import_tasks: "{{ role_path }}/tasks/server_base/setup.yml" | |||||
| when: run_setup|bool | when: run_setup|bool | ||||
| tags: | tags: | ||||
| - setup-all | - 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 | |||||