From 37bdbae2df3308d072a1b2eb57ac9e6af00a7bfc Mon Sep 17 00:00:00 2001 From: Jacob Cody Wimer Date: Wed, 11 Oct 2017 20:01:32 -0400 Subject: [PATCH] Added a dry run and fixed a lot of things --- group_vars/all | 4 +- hosts | 13 +++- roles/common/tasks/main.yml | 58 +++++++--------- roles/common/templates/docker-daemon.json.j2 | 2 +- roles/developer-machine/tasks/main.yml | 71 +++++++++++++------- supporting-scripts/check-diff-site.sh | 2 + supporting-scripts/ubuntu-ansible.sh | 7 ++ 7 files changed, 94 insertions(+), 63 deletions(-) create mode 100755 supporting-scripts/check-diff-site.sh create mode 100755 supporting-scripts/ubuntu-ansible.sh diff --git a/group_vars/all b/group_vars/all index 1df9f87..1332f21 100644 --- a/group_vars/all +++ b/group_vars/all @@ -3,7 +3,9 @@ docker_compose_version_to_install: 1.14.0 docker_ce_version_to_install: 17.06.0~ce-0~ubuntu -registry_location: registry.wimer.local:5000 +nvm_version: v0.33.5 +node_version: 8.4.0 +registry_location: "registry.wimer.local:5000" nfs_location: 10.0.0.150 home_pub_key: https://raw.githubusercontent.com/jcwimer/ubuntu-template/master/post/id_rsa.pub standard_user: cody diff --git a/hosts b/hosts index b16ef94..65c1217 100644 --- a/hosts +++ b/hosts @@ -1,2 +1,13 @@ +#[standard] +#wiki.wimer.local +#swarm-manager-01.wimer.local +#swarm-manager-02.wimer.local +#swarm-manager-03.wimer.local +#registry.wimer.local +#wrestlingdev-test.wimer.local +#elk.wimer.local +#guacamole.wimer.local +#fileserver.wimer.local + [developer-machines] -codydev +codydev ansible_host=10.0.0.207 diff --git a/roles/common/tasks/main.yml b/roles/common/tasks/main.yml index 465114d..924fd64 100644 --- a/roles/common/tasks/main.yml +++ b/roles/common/tasks/main.yml @@ -1,11 +1,10 @@ --- # This playbook contains plays that will run on all nodes -- name: Get docker key - apt-key: +- name: Add docker key + apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - # shell: curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - - name: Add docker repo apt_repository: @@ -18,7 +17,7 @@ #- name: Upgrade APT to the lastest packages # apt: upgrade=dist -- name: Install standard programes +- name: Install standard programs apt: name={{ item }} state=present force=yes with_items: - htop @@ -39,51 +38,39 @@ - dnsutils - nmon - build-essential - - linux-headers-server - tmux - name: Add standard_user to docker group user: - name: {{ standard_user }} + name: "{{ standard_user }}" groups: docker append: yes - name: Set authorized key took from url become: yes - become_user: {{ standard_user }} + become_user: "{{ standard_user }}" authorized_key: - user: {{ standard_user }} + user: "{{ standard_user }}" state: present - key: {{ home_pub_key }} + key: "{{ home_pub_key }}" - git_config: + name: user.name + value: 'Jacob {{ standard_user }} Wimer' become: yes - become_user: {{ standard_user }} - name: user.name - scope: local - value: 'Jacob {{ standard_user }} Wimer' + become_user: "{{ standard_user }}" - git_config: + name: user.email + value: 'jacob.wimer@gmail.com' become: yes - become_user: {{ standard_user }} - name: user.email - scope: local - value: 'jacob.wimer@gmail.com' + become_user: "{{ standard_user }}" - name: Docker compose version - shell: docker-compose --version - register: docker_compose_version - failed_when: "docker_compose_version.rc ==2 or docker_compose_version.rc == 3" - -- name: Get docker compose - shell: curl -L https://github.com/docker/compose/releases/download/{{docker_compose_version_to_install}}/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose - when: >- - docker_compose_version.stdout != "docker-compose version: {{docker_compose_version_to_install}}" - -- name: Link docker compose - shell: chmod +x /usr/local/bin/docker-compose - when: >- - docker_compose_version.stdout != "docker-compose version: {{docker_compose_version_to_install}}" + get_url: + url: https://github.com/docker/compose/releases/download/{{docker_compose_version_to_install}}/docker-compose-`uname -s`-`uname -m` + dest: /usr/local/bin/docker-compose + mode: 755 - name: Set timezone to NewYork timezone: @@ -94,11 +81,13 @@ - name: Replace docker daemon file template: src=../roles/common/templates/docker-daemon.json.j2 dest=/etc/docker/daemon.json - register: docker-daemon + register: dockerdaemon -- name: Restart docker service - shell: service docker restart - when: docker-daemon.changed +- name: Restart docker if daemon changes + service: + name: docker + state: restarted + when: dockerdaemon.changed - name: Creates directory file: path=/data state=directory @@ -114,6 +103,7 @@ path: /data src: 10.0.0.150:/volumeUSB1/usbshare/raw-files/fileserver/shares/lab-data state: present + fstype: nfs - name: test for swap partition shell: swapon -s | grep -E "^/" diff --git a/roles/common/templates/docker-daemon.json.j2 b/roles/common/templates/docker-daemon.json.j2 index af6a225..dac5687 100644 --- a/roles/common/templates/docker-daemon.json.j2 +++ b/roles/common/templates/docker-daemon.json.j2 @@ -1,3 +1,3 @@ { - "insecure-registries" : ["{{ regitstry_location }}"] + "insecure-registries" : ["{{ registry_location }}"] } diff --git a/roles/developer-machine/tasks/main.yml b/roles/developer-machine/tasks/main.yml index 308034d..35ba667 100644 --- a/roles/developer-machine/tasks/main.yml +++ b/roles/developer-machine/tasks/main.yml @@ -9,24 +9,41 @@ shell: gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 when: not rvm_installed.stat.exists become: true - become_user: {{ standard_user }} + become_user: "{{ standard_user }}" - name: Install rvm and latest ruby shell: \curl -sSL https://get.rvm.io | bash -s stable when: not rvm_installed.stat.exists become: true - become_user: {{ standard_user }} + become_user: "{{ standard_user }}" -- name: Is heroku installed - shell: which heroku - register: heroku_installed - failed_when: "heroku_installed.rc == 2 or heroku_installed.rc == 3" +- name: install heroku apt key + apt_key: url='https://toolbelt.heroku.com/apt/release.key' state=present -- name: Install heroku toolbelt - shell: wget -O- https://toolbelt.heroku.com/install-ubuntu.sh | sh - when: heroku_installed.stdout == "" +- name: install heroku apt repo + apt_repository: > + repo='deb http://toolbelt.heroku.com/ubuntu ./' + state=present + update_cache=yes -- name: Add docker repo +- name: install heroku-toolbelt + apt: name=heroku-toolbelt state=present + +- name: Install nvm + become: yes + become_user: "{{ standard_user }}" + shell: > + curl https://raw.githubusercontent.com/creationix/nvm/{{ nvm_version }}/install.sh | sh + creates=/home/{{ standard_user }}/.nvm/nvm.sh + +- name: Install node and set version + become: yes + become_user: "{{ standard_user }}" + shell: > + /bin/bash -c "source ~/.nvm/nvm.sh && nvm install {{ node_version }} && nvm alias default {{ node_version }}" + creates=/home/{{ standard_user }}/.nvm/alias + +- name: Add tmate repo apt_repository: repo: 'ppa:tmate.io/archive' state: present @@ -39,40 +56,35 @@ with_items: - xrdp - tmate - - nodejs - - npm - -- name: Install localtunnel - npm: - name: localtunnel - global: yes - name: Create vim autoload directory file: path=/home/{{ standard_user }}/.vim/autoload state=directory become: yes - become_user: {{ standard_user }} + become_user: "{{ standard_user }}" - name: Create vim bundle directory file: path=/home/{{ standard_user }}/.vim/bundle state=directory become: yes - become_user: {{ standard_user }} + become_user: "{{ standard_user }}" - name: Install pathogen become: yes - become_user: {{ standard_user }} - git: repo=https://github.com/tpope/vim-pathogen.git - dest=/home/{{ standard_user }}/.vim/autoload/pathogen.vim + become_user: "{{ standard_user }}" + git: + repo: https://github.com/tpope/vim-pathogen.git + dest: /home/{{ standard_user }}/.vim/autoload/pathogen.vim - name: Install nerdtree - git: repo=https://github.com/scrooloose/nerdtree.git - dest=/home/{{ standard_user }}/.vim/bundle/nerdtree + git: + repo: https://github.com/scrooloose/nerdtree.git + dest: /home/{{ standard_user }}/.vim/bundle/nerdtree become: yes - become_user: {{ standard_user }} + become_user: "{{ standard_user }}" - name: Replace .vimrc template: src=../roles/developer-machine/templates/vimrc.j2 dest=/home/{{ standard_user }}/.vimrc become: yes - become_user: {{ standard_user }} + become_user: "{{ standard_user }}" - name: Creates directory file: path=/data state=directory @@ -88,5 +100,12 @@ path: /data src: 10.0.0.150:/volumeUSB1/usbshare/raw-files state: present + fstype: nfs + +- name: Install localtunnel + npm: + name: localtunnel + global: yes + executable: /home/{{ standard_user }}/.nvm/versions/node/v{{ node_version }}/bin/npm diff --git a/supporting-scripts/check-diff-site.sh b/supporting-scripts/check-diff-site.sh new file mode 100755 index 0000000..9db4d95 --- /dev/null +++ b/supporting-scripts/check-diff-site.sh @@ -0,0 +1,2 @@ +#!/bin/bash +ANSIBLE_HOST_KEY_CHECKING=False ansible-playbook -i hosts playbooks/site.yml --check --diff diff --git a/supporting-scripts/ubuntu-ansible.sh b/supporting-scripts/ubuntu-ansible.sh new file mode 100755 index 0000000..07df2e5 --- /dev/null +++ b/supporting-scripts/ubuntu-ansible.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +sudo apt-get update +sudo apt-get install software-properties-common +sudo apt-add-repository ppa:ansible/ansible +sudo apt-get update +sudo apt-get install ansible