diff --git a/playbooks/roles/common/tasks/main.yml b/playbooks/roles/common/tasks/main.yml index 6dcbbde..0dd404c 100644 --- a/playbooks/roles/common/tasks/main.yml +++ b/playbooks/roles/common/tasks/main.yml @@ -9,7 +9,7 @@ - "install:configuration" # ubuntu -- stat: +- stat: path: "/usr/sbin/update-ca-certificates" register: update_ca_certificates @@ -52,25 +52,22 @@ when: ansible_distribution in common_debian_variants -# Ensure that we get the latest version of python 2.7 -- name: add edx ppa apt key +# Ensure that we can install old software if need be. +- name: Add edX PPA apt key apt_key: id: "{{ COMMON_EDX_PPA_KEY_ID }}" keyserver: "{{ COMMON_EDX_PPA_KEY_SERVER }}" state: "present" when: > - ansible_distribution in common_debian_variants and - ansible_distribution_release in common_custom_ppa_releases + ansible_distribution in common_debian_variants - name: Add custom edX PPA -# Ensure that we get a current version of Git and latest version of python 2.7 -# GitHub requires version 1.7.10 or later -# https://help.github.com/articles/https-cloning-errors + # Ensure that we get the latest version of python 2.7 + # MySQL 5.6 is from our own PPA: https://bugs.mysql.com/bug.php?id=84848 apt_repository: repo: "{{ COMMON_EDX_PPA }}" when: > - ansible_distribution in common_debian_variants and - ansible_distribution_release in common_custom_ppa_releases + ansible_distribution in common_debian_variants - name: Install role-independent useful system packages @@ -78,7 +75,7 @@ apt: name: "{{ item }}" install_recommends: yes - state: present + state: present update_cache: yes with_items: "{{ common_debian_pkgs }}" when: ansible_distribution in common_debian_variants @@ -89,15 +86,15 @@ install_recommends: yes state: present update_cache: yes - with_items: "{{ common_custom_debian_pkgs }}" + with_items: "{{ old_python_debian_pkgs }}" when: > - ansible_distribution in common_debian_variants and - ansible_distribution_release in common_custom_ppa_releases + ansible_distribution in common_debian_variants and + ansible_distribution_release in old_python_ppa_releases - name: Install role-independent useful system packages yum: name: "{{ item }}" - state: present + state: present update_cache: yes with_items: "{{ common_redhat_pkgs }}" when: ansible_distribution in common_redhat_variants @@ -106,24 +103,24 @@ - name: Create common directories file: path: "{{ item.path }}" - state: "{{ item.state | default('directory') }}" + state: "{{ item.state | default('directory') }}" owner: "{{ item.owner | default('root') }}" - group: "{{ item.group | default('root') }}" + group: "{{ item.group | default('root') }}" mode: "0755" with_items: "{{ common_directories }}" - name: upload sudo config for key forwarding as root copy: - src: ssh_key_forward + src: ssh_key_forward dest: /etc/sudoers.d/ssh_key_forward - validate: 'visudo -c -f %s' - owner: root - group: root + validate: 'visudo -c -f %s' + owner: root + group: root mode: "0440" - name: pip install virtualenv pip: - name: "{{ item }}" + name: "{{ item }}" state: present extra_args: "-i {{ COMMON_PYPI_MIRROR_URL }}" with_items: "{{ common_pip_pkgs }}" @@ -131,8 +128,8 @@ - name: update /etc/hosts - template: - src: hosts.j2 + template: + src: hosts.j2 dest: /etc/hosts when: COMMON_HOSTNAME|length > 0 register: etc_hosts @@ -152,8 +149,8 @@ template: dest: "{{ item.dest }}" src: "{{ item.src }}" - owner: root - group: root + owner: root + group: root mode: "{{ item.mode | default(0644) }}" register: config_templates with_items: @@ -165,8 +162,8 @@ # TODO: restarts no matter which template has changed, need to examine # the results - name: restart rsyslogd - service: - name: rsyslog + service: + name: rsyslog state: restarted become: True when: config_templates.changed diff --git a/playbooks/roles/common_vars/defaults/main.yml b/playbooks/roles/common_vars/defaults/main.yml index 974f88a..5df4444 100644 --- a/playbooks/roles/common_vars/defaults/main.yml +++ b/playbooks/roles/common_vars/defaults/main.yml @@ -119,7 +119,7 @@ common_debian_pkgs: - python2.7-dev # Packages that should be installed from our custom PPA, i.e. COMMON_EDX_PPA -common_custom_debian_pkgs: +old_python_debian_pkgs: - "python2.7=2.7.10-0+{{ ansible_distribution_release }}1" common_pip_pkgs: @@ -153,8 +153,8 @@ common_debian_variants: - Ubuntu - Debian -# Only attempt to use our custom PPA for these releases -common_custom_ppa_releases: +# We only have to install old Python for these releases: +old_python_ppa_releases: - precise - trusty diff --git a/playbooks/roles/mysql/tasks/mysql.yml b/playbooks/roles/mysql/tasks/mysql.yml index cdc3701..7f505b4 100644 --- a/playbooks/roles/mysql/tasks/mysql.yml +++ b/playbooks/roles/mysql/tasks/mysql.yml @@ -3,7 +3,7 @@ # # - downloaded the mysql-apt-repo from the mysql official site(named: mysql-apt-config_0.6.0-1_all.deb) # - Find the `debconf` setting information after installing this `deb` package -# +# # # debconf-show mysql-apt-config # * mysql-apt-config/select-server: mysql-5.6 # mysql-apt-config/unsupported-platform: abort @@ -11,9 +11,9 @@ # * mysql-apt-config/select-product: Apply # mysql-apt-config/select-tools: # mysql-apt-config/repo-distro: ubuntu -# +# # - Even to get more information about the `debconf` options of the package: -# +# # # debconf-get-selections|grep mysql-apt-config # mysql-apt-config mysql-apt-config/select-server select mysql-5.6 # mysql-apt-config mysql-apt-config/unsupported-platform select abort @@ -21,17 +21,17 @@ # mysql-apt-config mysql-apt-config/select-product select Apply # mysql-apt-config mysql-apt-config/select-tools select # mysql-apt-config mysql-apt-config/repo-distro select ubuntu -# -# - After the installation, I have checked the `/etc/apt/sources.list.d` directory and found one file `mysql.list` +# +# - After the installation, I have checked the `/etc/apt/sources.list.d` directory and found one file `mysql.list` # with following contents: -# +# # deb http://repo.mysql.com/apt/ubuntu/ precise mysql-apt-config # deb http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6 # deb-src http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6 -# # -# Thought that instead of performing all those steps and get the repo, why not directly use this repo -# `deb http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6`, I just picked this line and directly used it and it worked for us. +# +# Thought that instead of performing all those steps and get the repo, why not directly use this repo +# `deb http://repo.mysql.com/apt/ubuntu/ precise mysql-5.6`, I just picked this line and directly used it and it worked for us. - name: Add MySQL community apt key apt_key: @@ -49,29 +49,22 @@ update_cache: yes when: ansible_distribution_release == 'precise' -# repo.mysql.com does not have 5.6 packages for xenial -- name: Install MySQL from ondrej PPA - apt_repository: - repo: "ppa:ondrej/mysql-5.6" - update_cache: yes - when: ansible_distribution_release == 'xenial' - - name: Install mysql-5.6 and dependencies - apt: - name: "{{ item }}" + apt: + name: "{{ item }}" install_recommends: yes state: present with_items: "{{ mysql_debian_pkgs }}" - name: Start mysql - service: - name: mysql + service: + name: mysql state: started - name: Ensure Anonymous user(s) does not exist - mysql_user: - name: '' - host: "{{ item }}" + mysql_user: + name: '' + host: "{{ item }}" state: absent with_items: - localhost diff --git a/util/install/ansible-bootstrap.sh b/util/install/ansible-bootstrap.sh index 5ed54ca..aee46ad 100755 --- a/util/install/ansible-bootstrap.sh +++ b/util/install/ansible-bootstrap.sh @@ -107,13 +107,9 @@ apt-get install -y software-properties-common python-software-properties # Add git PPA add-apt-repository -y ppa:git-core/ppa -# For older distributions we need to install a PPA for Python 2.7.10 -if [[ "precise" = "${SHORT_DIST}" || "trusty" = "${SHORT_DIST}" ]]; then - - # Add python PPA - apt-key adv --keyserver "${EDX_PPA_KEY_SERVER}" --recv-keys "${EDX_PPA_KEY_ID}" - add-apt-repository -y "${EDX_PPA}" -fi +# For older software we need to install our own PPA. +apt-key adv --keyserver "${EDX_PPA_KEY_SERVER}" --recv-keys "${EDX_PPA_KEY_ID}" +add-apt-repository -y "${EDX_PPA}" # Install python 2.7 latest, git and other common requirements # NOTE: This will install the latest version of python 2.7 and