Merge "Chore: Adding python3-ncclient for 20.04"
[ci-management.git] / packer / provision / local-docker.yaml
index 0948cd0..0619951 100644 (file)
@@ -6,10 +6,11 @@
   become_method: sudo
   vars:
     apt_file: /etc/apt/sources.list.d/google-chrome.list
-    docker_compose_version: 1.17.1
+    docker_compose_version: 1.29.2
     glide_checksum: sha256:c403933503ea40308ecfadcff581ff0dc3190c57958808bb9eed016f13f6f32c
     glide_version: v0.13.1
     golang_version: 1.9.1
+    npm_version: "6.14.13"
 
   tasks:
     - name: "Checking for x86_64"
       become: true
       when: ansible_distribution == 'Ubuntu'
 
+    - name: Install Python 3.8
+      apt:
+        name:
+          - python3.8
+          - python3.8-dev
+          - python3.8-tk
+      become: true
+      when: ansible_distribution == 'Ubuntu'
+
+    - name: Install Python 3.9
+      apt:
+        name:
+          - python3.9
+          - python3.9-dev
+          - python3.9-tk
+          - python3.9-distutils
+      become: true
+      when: ansible_distribution == 'Ubuntu'
+
     - name: Install nodejs-dev libssl1.0-dev dep
       apt:
         name:
         update_cache: yes
         state: fixed
       become: true
-      when: ansible_distribution == 'Ubuntu'
+      when: ansible_distribution == 'Ubuntu' and ansible_distribution_version == '18.04'
+
+    - name: Install libnode-dev dep for npm
+      apt:
+        name: libnode-dev
+        update_cache: yes
+        state: fixed
+      become: true
+      when: ansible_distribution == 'Ubuntu' and ansible_distribution_version == '20.04'
 
-    - name: Install supporting packages
+    - name: Install supporting packages (Ubuntu 18.04)
       apt:
         name:
           - unzip
           - crudini
           - maven
           - python-ncclient
+        update_cache: yes
+        state: fixed
+      become: true
+      when: ansible_distribution == 'Ubuntu' and ansible_distribution_version == '18.04'
+
+    - name: Install supporting packages (Ubuntu 20.04)
+      apt:
+        name:
+          - unzip
+          - xz-utils
+          - libxml-xpath-perl
+          - wget
+          - make
+          - sshuttle
+          - netcat
+          - libssl-dev
+          - libffi-dev
           - xmlstarlet
           - xvfb
           - crudini
           - maven
-          - python-ncclient
+          - python3-ncclient
         update_cache: yes
         state: fixed
       become: true
-      when: ansible_distribution == 'Ubuntu'
+      when: ansible_distribution == 'Ubuntu' and ansible_distribution_version == '20.04'
 
     - name: Install npm and addon packages
       apt:
       become: true
       when: ansible_distribution == 'Ubuntu'
 
+    - name: npm self-update
+      command: npm install npm@{{ npm_version }} -g
+      become: true
+      when: ansible_distribution == 'Ubuntu'
+
+    - name: npm install n module
+      command: npm install n -g
+      become: true
+      when: ansible_distribution == 'Ubuntu'
+
+    - name: Upgrade latest stable node version
+      command: n stable | PATH="$PATH"
+      become: true
+      when: ansible_distribution == 'Ubuntu'
+
     - name: Add Google Chrome key
       apt_key:
         url: https://dl-ssl.google.com/linux/linux_signing_key.pub
     - name: Install Erlang dependency packages
       apt:
         name:
-          - libwxgtk3.0-0v5
           - libsctp1
           - libwxbase3.0-0v5
       become: true
       when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu'
 
-    - name: Install Erlang
+    - name: Install Erlang dependency package libwxgtk3 for 18.04
       apt:
-        deb: https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_19.3.6-1~ubuntu~trusty_amd64.deb
+        name:
+          - libwxgtk3.0-0v5
       become: true
-      when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu'
+      when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu' and ansible_distribution_version == '18.04'
 
-    - name: Clone rebar3
-      git:
-        repo: 'https://github.com/erlang/rebar3.git'
-        dest: /tmp/rebar3
-      when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu'
+    - name: Install Erlang dependency package libwxgtk3 for 20.04
+      apt:
+        name:
+          - libwxgtk3.0-gtk3-0v5
+      become: true
+      when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu' and ansible_distribution_version == '20.04'
 
-    - name: Bootstrap rebar3
-      command: ./bootstrap
-      args:
-        chdir: /tmp/rebar3
+    - name: Install Erlang
+      apt:
+        deb: https://packages.erlang-solutions.com/erlang/debian/pool/esl-erlang_19.3.6-1~ubuntu~trusty_amd64.deb
+      become: true
       when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu'
 
-    - name: Install rebar3 to bin
-      copy:
-        src: /tmp/rebar3/rebar3
-        dest: /usr/bin/rebar3
-        mode: 0755
-        remote_src: true
+    - name: 'Download latest rebar3 bin'
+      command: curl -o /usr/bin/rebar3 -L "https://s3.amazonaws.com/rebar3/rebar3"
       become: true
       when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu'
 
-    - name: Remove unused rebar3 source
-      file:
-        path: /tmp/rebar3
-        state: absent
+    - file:
+        path: /usr/bin/rebar3
+        mode: "+x"
+      become: true
       when: ansible_architecture == 'x86_64' and ansible_distribution == 'Ubuntu'
 
     - name: Download geckodriver