From e549345590a58eae5aa01f96c6ecfcea6ad3af26 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 9 Mar 2017 12:40:01 -0600 Subject: [PATCH 01/11] Add codename when necessary for linux mint known version. --- provisioning/playbook.yml | 3 ++- provisioning/tasks/ansible.yml | 17 +++++++++++++++++ provisioning/tasks/include-vars.yml | 9 +++++++++ provisioning/tasks/init-debian.yml | 5 ++++- provisioning/vars/main.yml | 2 ++ provisioning/vars/qiana.yml | 1 + provisioning/vars/rafaela.yml | 1 + provisioning/vars/rebecca.yml | 1 + provisioning/vars/rosa.yml | 1 + provisioning/vars/sarah.yml | 1 + provisioning/vars/serena.yml | 1 + 11 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 provisioning/tasks/ansible.yml create mode 100644 provisioning/tasks/include-vars.yml create mode 100644 provisioning/vars/qiana.yml create mode 100644 provisioning/vars/rafaela.yml create mode 100644 provisioning/vars/rebecca.yml create mode 100644 provisioning/vars/rosa.yml create mode 100644 provisioning/vars/sarah.yml create mode 100644 provisioning/vars/serena.yml diff --git a/provisioning/playbook.yml b/provisioning/playbook.yml index 36a52ba..05b9c13 100644 --- a/provisioning/playbook.yml +++ b/provisioning/playbook.yml @@ -9,12 +9,13 @@ gather_facts: False pre_tasks: - include: tasks/init.yml + - include: tasks/include-vars.yml - include: tasks/init-debian.yml + - include: tasks/ansible.yml roles: # Essential roles. - geerlingguy.git - - dwcramer.ansible - andrewrothstein.vagrant - { role: wtanaka.virtualbox, when: install_virtualbox } - { role: gvillalta99.nvm, when: install_node } diff --git a/provisioning/tasks/ansible.yml b/provisioning/tasks/ansible.yml new file mode 100644 index 0000000..fa90b2c --- /dev/null +++ b/provisioning/tasks/ansible.yml @@ -0,0 +1,17 @@ +--- +# tasks file for ansible (Ubuntu specific) + +- name: Install Ansible PPA key + apt_key: > + id=6125E2A8C77F2818FB7BD15B93C4A3FD7BB9C367 + keyserver=keyserver.ubuntu.com + state=present + +- name: Install Ansible PPA + apt_repository: > + repo='ppa:ansible/ansible' + state=present + codename={{ distro_codename }} + +- name: Install Ansible packages + apt: name='ansible' state=present update_cache=yes diff --git a/provisioning/tasks/include-vars.yml b/provisioning/tasks/include-vars.yml new file mode 100644 index 0000000..0ed69fa --- /dev/null +++ b/provisioning/tasks/include-vars.yml @@ -0,0 +1,9 @@ +--- +- name: Include codename var. + include_vars: "{{ ansible_distribution_release }}.yml" + when: (ansible_distribution == "Ubuntu" and ansible_distribution_release == "qiana") or + (ansible_distribution == "Ubuntu" and ansible_distribution_release == "rebecca") or + (ansible_distribution == "Ubuntu" and ansible_distribution_release == "rafaela") or + (ansible_distribution == "Ubuntu" and ansible_distribution_release == "rosa") or + (ansible_distribution == "Ubuntu" and ansible_distribution_release == "sarah") or + (ansible_distribution == "Ubuntu" and ansible_distribution_release == "serena") diff --git a/provisioning/tasks/init-debian.yml b/provisioning/tasks/init-debian.yml index 7ce6a4f..9d80ba7 100644 --- a/provisioning/tasks/init-debian.yml +++ b/provisioning/tasks/init-debian.yml @@ -13,4 +13,7 @@ - libgnome-keyring-dev - name: Add repository for PHP - apt_repository: repo='ppa:ondrej/php' + apt_repository: + repo='ppa:ondrej/php' + state=present + codename={{ distro_codename }} diff --git a/provisioning/vars/main.yml b/provisioning/vars/main.yml index 48b6896..894c952 100644 --- a/provisioning/vars/main.yml +++ b/provisioning/vars/main.yml @@ -26,3 +26,5 @@ rvm_install_type: 'user' extra_packages: - mysql-client - nfs-kernel-server + +distro_codename: "{{ ansible_distribution_release }}" diff --git a/provisioning/vars/qiana.yml b/provisioning/vars/qiana.yml new file mode 100644 index 0000000..7ee70a3 --- /dev/null +++ b/provisioning/vars/qiana.yml @@ -0,0 +1 @@ +distro_codename: 'trusty' diff --git a/provisioning/vars/rafaela.yml b/provisioning/vars/rafaela.yml new file mode 100644 index 0000000..7ee70a3 --- /dev/null +++ b/provisioning/vars/rafaela.yml @@ -0,0 +1 @@ +distro_codename: 'trusty' diff --git a/provisioning/vars/rebecca.yml b/provisioning/vars/rebecca.yml new file mode 100644 index 0000000..7ee70a3 --- /dev/null +++ b/provisioning/vars/rebecca.yml @@ -0,0 +1 @@ +distro_codename: 'trusty' diff --git a/provisioning/vars/rosa.yml b/provisioning/vars/rosa.yml new file mode 100644 index 0000000..7ee70a3 --- /dev/null +++ b/provisioning/vars/rosa.yml @@ -0,0 +1 @@ +distro_codename: 'trusty' diff --git a/provisioning/vars/sarah.yml b/provisioning/vars/sarah.yml new file mode 100644 index 0000000..38434c8 --- /dev/null +++ b/provisioning/vars/sarah.yml @@ -0,0 +1 @@ +distro_codename: 'xenial' diff --git a/provisioning/vars/serena.yml b/provisioning/vars/serena.yml new file mode 100644 index 0000000..38434c8 --- /dev/null +++ b/provisioning/vars/serena.yml @@ -0,0 +1 @@ +distro_codename: 'xenial' From a4a74a859ebf0d10836644d58f81d4ed627c3c05 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 9 Mar 2017 12:41:36 -0600 Subject: [PATCH 02/11] Update php packages. --- custom.config.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/custom.config.yml b/custom.config.yml index 225fedc..39ec247 100644 --- a/custom.config.yml +++ b/custom.config.yml @@ -11,16 +11,16 @@ manativm: false # PHP configuration. php_packages: - - php5-common - - php5-cli - - php5-dev + - php7.1-common + - php7.1-cli + - php7.1-dev - libpcre3-dev - - php5-gd - - php5-curl - - php5-imap - - php5-json - - php5-opcache - - php5-xml - - php5-mbstring + - php7.1-gd + - php7.1-curl + - php7.1-imap + - php7.1-json + - php7.1-opcache + - php7.1-xml + - php7.1-mbstring - php-sqlite3 - php-apcu From 1b77fc7a7a2a05b4b576578895d6ea78a0733467 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 9 Mar 2017 12:53:11 -0600 Subject: [PATCH 03/11] Try to add travis tests. --- .travis.yml | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..b157807 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,50 @@ +--- +services: docker + +env: + # Test on ubuntu and mint OSes. + - distro: ubuntu1604 + init: /lib/systemd/systemd + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + docker_image: "geerlingguy/docker-ubuntu1604-ansible:latest" + - distro: ubuntu1404 + init: /sbin/init + run_opts: "" + docker_image: "geerlingguy/docker-ubuntu1404-ansible:latest" + - distro: mintserena + init: /lib/systemd/systemd + run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" + docker_image: "docker pull vcatechnology/linux-mint:18.1" + - distro: mintrosa + init: /sbin/init + run_opts: "" + docker_image: "docker pull vcatechnology/linux-mint:17.3" + + # Test older versions of Solr / OSes. + +before_install: + # Pull container. + - 'docker pull ${docker_image}' + +script: + - container_id=$(mktemp) + # Run container in detached state. + - 'docker run --detach --volume="${PWD}":/root/developer_machine:rw ${run_opts} ${docker_image} "${init}" > "${container_id}"' + + # Install dependencies. + - 'docker exec "$(cat ${container_id})" ansible-galaxy install -r /root/developer_machine/provisioning/requirements.yml' + + # Ansible syntax check. + - 'docker exec --tty "$(cat ${container_id})" env TERM=xterm ansible-playbook /root/developer_machine/provisioning/playbook.yml --syntax-check' + + # Test role. + - 'docker exec "$(cat ${container_id})" env TERM=xterm ansible-playbook /root/developer_machine/provisioning/playbook.yml' + + # Test role idempotence. + - idempotence=$(mktemp) + - docker exec "$(cat ${container_id})" ansible-playbook /root/developer_machine/provisioning/playbook.yml | tee -a {idempotence} + - > + tail ${idempotence} + | grep -q 'changed=0.*failed=0' + && (echo 'Idempotence test: pass' && exit 0) + || (echo 'Idempotence test: fail' && exit 1) From 3e8fa7d765525c03e3799ad9edc82bcdf4243279 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 9 Mar 2017 13:10:17 -0600 Subject: [PATCH 04/11] Get config.yml file in place. --- .gitignore | 1 + .travis.yml | 1 + custom.config.yml | 1 + provisioning/playbook.yml | 1 + tests/config.yml | 27 +++++++++++++++++++++++++++ 5 files changed, 31 insertions(+) create mode 100644 tests/config.yml diff --git a/.gitignore b/.gitignore index 35dfd65..58ed089 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ # Config file. config.yml +!tests/config.yml # Hosts file. hosts diff --git a/.travis.yml b/.travis.yml index b157807..427172c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,6 +28,7 @@ before_install: script: - container_id=$(mktemp) + - cp tests/config.yml config.yml # Run container in detached state. - 'docker run --detach --volume="${PWD}":/root/developer_machine:rw ${run_opts} ${docker_image} "${init}" > "${container_id}"' diff --git a/custom.config.yml b/custom.config.yml index 39ec247..2dcd5a6 100644 --- a/custom.config.yml +++ b/custom.config.yml @@ -7,6 +7,7 @@ install_spotify: true install_node: true install_ruby: true install_virtualbox: true +install_ansible: true manativm: false # PHP configuration. diff --git a/provisioning/playbook.yml b/provisioning/playbook.yml index 05b9c13..3e118d2 100644 --- a/provisioning/playbook.yml +++ b/provisioning/playbook.yml @@ -12,6 +12,7 @@ - include: tasks/include-vars.yml - include: tasks/init-debian.yml - include: tasks/ansible.yml + when: install_ansible roles: # Essential roles. diff --git a/tests/config.yml b/tests/config.yml new file mode 100644 index 0000000..4672fc4 --- /dev/null +++ b/tests/config.yml @@ -0,0 +1,27 @@ +install_atom: true +install_keepassx: true +install_chrome: true +install_slack: true +install_dropbox: true +install_spotify: true +install_node: true +install_ruby: true +install_virtualbox: true +install_ansible: false +manativm: false + +# PHP configuration. +php_packages: + - php7.1-common + - php7.1-cli + - php7.1-dev + - libpcre3-dev + - php7.1-gd + - php7.1-curl + - php7.1-imap + - php7.1-json + - php7.1-opcache + - php7.1-xml + - php7.1-mbstring + - php-sqlite3 + - php-apcu From b0b7395cda4ed8e7c1c4ab8e27e5da9794bc0ef8 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Thu, 9 Mar 2017 13:10:36 -0600 Subject: [PATCH 05/11] Do not tests for mint by now. --- .travis.yml | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/.travis.yml b/.travis.yml index 427172c..21e2ed6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,16 +11,6 @@ env: init: /sbin/init run_opts: "" docker_image: "geerlingguy/docker-ubuntu1404-ansible:latest" - - distro: mintserena - init: /lib/systemd/systemd - run_opts: "--privileged --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro" - docker_image: "docker pull vcatechnology/linux-mint:18.1" - - distro: mintrosa - init: /sbin/init - run_opts: "" - docker_image: "docker pull vcatechnology/linux-mint:17.3" - - # Test older versions of Solr / OSes. before_install: # Pull container. From 32ad7b0913c5f5a1e31bce10f40fa51aa3f7ca07 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Fri, 16 Feb 2018 08:39:07 -0600 Subject: [PATCH 06/11] Update variables for vagrant role. --- provisioning/vars/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/provisioning/vars/main.yml b/provisioning/vars/main.yml index 894c952..5f1a060 100644 --- a/provisioning/vars/main.yml +++ b/provisioning/vars/main.yml @@ -2,7 +2,8 @@ ansible_python_interpreter: /usr/bin/python2.7 drush_version: '8.x' ansible_install_version: '2.2.1' -vagrant_version: '1.9.1' +vagrant_version: '2.0.1' +vagrant_pkg_suffix: 'deb' nvm: default_node_version: "4" dependencies: From 5483b7b5f909b34b9e1b3a97cbdb2bc6ab61736b Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Fri, 16 Feb 2018 09:07:10 -0600 Subject: [PATCH 07/11] Update node versions. --- provisioning/vars/main.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/provisioning/vars/main.yml b/provisioning/vars/main.yml index 5f1a060..6e8ab9c 100644 --- a/provisioning/vars/main.yml +++ b/provisioning/vars/main.yml @@ -5,7 +5,7 @@ ansible_install_version: '2.2.1' vagrant_version: '2.0.1' vagrant_pkg_suffix: 'deb' nvm: - default_node_version: "4" + default_node_version: "6" dependencies: apt: - git @@ -13,9 +13,8 @@ nvm: - build-essential - libssl-dev node_versions: - - '4' - - '5' - '6' + - '8' packages: - grunt-cli - gulp-cli From 271245dc62fdee69cdc5f07566a4f7baa5889da0 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Fri, 16 Feb 2018 09:26:45 -0600 Subject: [PATCH 08/11] Only install node 6. --- provisioning/vars/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/provisioning/vars/main.yml b/provisioning/vars/main.yml index 6e8ab9c..77fa2b0 100644 --- a/provisioning/vars/main.yml +++ b/provisioning/vars/main.yml @@ -14,7 +14,6 @@ nvm: - libssl-dev node_versions: - '6' - - '8' packages: - grunt-cli - gulp-cli From 6976b3643b0fe6b1c30b41f459db935b99b35e5e Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Fri, 16 Feb 2018 09:51:54 -0600 Subject: [PATCH 09/11] Update nvm. --- provisioning/vars/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provisioning/vars/main.yml b/provisioning/vars/main.yml index 77fa2b0..626a932 100644 --- a/provisioning/vars/main.yml +++ b/provisioning/vars/main.yml @@ -20,7 +20,7 @@ nvm: - bower path: "~/.nvm" profile_file: "~/.bashrc" - version: 'v0.20.0' + version: 'v0.33.8' rvm_install_type: 'user' extra_packages: - mysql-client From 6deaf1efadca6f4f3e501d7865fc506631096ba5 Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Fri, 16 Feb 2018 10:02:16 -0600 Subject: [PATCH 10/11] Add missing variable. --- provisioning/vars/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/provisioning/vars/main.yml b/provisioning/vars/main.yml index 626a932..83e7997 100644 --- a/provisioning/vars/main.yml +++ b/provisioning/vars/main.yml @@ -6,6 +6,7 @@ vagrant_version: '2.0.1' vagrant_pkg_suffix: 'deb' nvm: default_node_version: "6" + node_version: "6" dependencies: apt: - git From 3448f5a755df8205e69d8c407fa4e91224cf605d Mon Sep 17 00:00:00 2001 From: Kevin Porras Date: Fri, 16 Feb 2018 10:10:47 -0600 Subject: [PATCH 11/11] Remove default npm packages. --- provisioning/vars/main.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/provisioning/vars/main.yml b/provisioning/vars/main.yml index 83e7997..6a835ff 100644 --- a/provisioning/vars/main.yml +++ b/provisioning/vars/main.yml @@ -15,10 +15,7 @@ nvm: - libssl-dev node_versions: - '6' - packages: - - grunt-cli - - gulp-cli - - bower + packages: [] path: "~/.nvm" profile_file: "~/.bashrc" version: 'v0.33.8'