yvoronoy/m2install

View on GitHub
infra/ansible/playbook.yaml

Summary

Maintainability
Test Coverage
# Ansible playbook AWS - install docker (2021)
---
- name: "AWS - Install docker"
  hosts: all
  vars:
    magento2docker_path: /home/ec2-user/magento2docker
    dc: /usr/local/bin/docker-compose
  remote_user: ec2-user
  become: yes

  tasks:
    - name: Wait for connection
      wait_for_connection:
        timeout: 30
    - name: Install Docker
      yum:
        name: 
          - docker
          - git
        state: "present"
    - name: Launch Docker
      service:
        name: "docker"
        state: "started"
    - name: Install docker-compose
      remote_user: ubuntu
      get_url: 
        url : https://github.com/docker/compose/releases/download/1.25.1-rc1/docker-compose-Linux-x86_64
        dest: "{{ dc }}"
        mode: 'u+x,g+x'

    - name: Delete existing codebase repository
      file:
        path: "{{ magento2docker_path }}"
        state: absent
    - name: Delete existing codebase repository
      file:
        path: "/home/ec2-user/m2install"
        state: absent
    - name: Clone Repo
      git:
        repo: https://github.com/yvoronoy/magento2docker.git
        dest: "{{ magento2docker_path }}"
        version: master
        accept_hostkey: yes
        force: yes
        clone: yes
        update: yes
    - name: Archive Src on runner node
      archive:
        path: "../../../m2install"
        dest: "/tmp/m2install.tgz"
      delegate_to: localhost
      become: false
    - name: Copy Src
      unarchive:
        src: "/tmp/m2install.tgz"
        dest: /home/ec2-user
    - name: Load secrets
      include_vars:
        file: secrets.yaml
    - name: Update Composer Keys
      template:
        src: templates/composer/auth.json.j2
        dest: /home/ec2-user/magento2docker/env/etc/composer/auth.json
        force: yes
    - name: Update gitconfig file
      command: "cp /home/ec2-user/magento2docker/env/etc/git/gitconfig.example /home/ec2-user/magento2docker/env/etc/git/gitconfig"
    - name: Switch php version
      command: "bash -c 'cd {{ magento2docker_path }}/env; make php74 2>&1'"
    - name: Run docker compose up
      command: "bash -c 'cd {{ magento2docker_path }}/env; {{ dc }} up -d --build'"
    - name: Run ES7
      command: "bash -c 'cd {{ magento2docker_path }}/env/additional/elasticsearch7 && {{ dc }}  up -d'"
    - name: Run ES6
      command: "bash -c 'cd {{ magento2docker_path }}/env/additional/elasticsearch6 && {{ dc }}  up -d'"
    - name: Clean up Inside Docker 
      command: 'docker exec -u magento -it magento2web find . -mindepth 1 -maxdepth 1 -type d -exec rm -rf {} \;'
    - name: Clone m2install
      command: "docker cp /home/ec2-user/m2install magento2web:/var/www/html"
    - name: RUN Unit TEST
      command: "docker exec -u magento -w /var/www/html/m2install -it magento2web bash ./m2install.sh --test"
      timeout: 600
    - name: RUN FUNCTIONAL TEST
      command: "docker exec -u magento -w /var/www/html/m2install -it magento2web bash tests/testsuite-parallel.sh 16"
      timeout: 7200