Déployer un projet avec Ansible et Docker 

Prérequis

  • Avoir installer le projet exploitation

~/workspace • git clone git@github.com:Profideo/exploitation.git

Préparer les environnements docker pour le déploiement des projets

Configuration

  • Préparer les environnements docker pour le déploiements des projets :
// ~/workspace/exploitation/ansible/vars/app_instance/setupDev/local.yml

... 

containers:
  - {
      image: 'apache-php54-node',
      hosts: [ 'phpmyadmin.dev' ],
      web_port: "8081",
      ssh_port: "22001",
      applications: [
          { name: 'api',                docroot: 'api/api/web' },
          { name: 'backoffice',         docroot: 'backoffice/backoffice/web' },
          { name: 'broadcast',          docroot: 'broadcast/broadcast/web' },
          { name: 'broadcast2',         docroot: 'broadcast2/broadcast2/web' },
          { name: 'broadcast-api',      docroot: 'broadcast-api/broadcast-api/web' },
          { name: 'espri',              docroot: 'espri/espri/web' },
          { name: 'innovation-admin',   docroot: 'innovation-admin/innovation-admin/web' },
          { name: 'innovation-front',   docroot: 'innovation-front/innovation-front/web' },
          { name: 'innovation-api',     docroot: 'innovation-api/innovation-api/web' },
          { name: 'metiers-bo',         docroot: 'metiers/metiers-bo/web' },
          { name: 'metiers-front',      docroot: 'metiers/metiers-front/web' },
          { name: 'observer',           docroot: 'backoffice/observer/web' },
          { name: 'portail',            docroot: 'portail/portail/web' }
      ]
    }
  - {
      image: 'php54-imagick',
      hosts: [ 'phpmyadmin.dev' ],
      web_port: "8082",
      ssh_port: "22002",
      applications: [
          { name: 'batchs',             docroot: 'batchs' }
      ]
    }
  - {
      image: 'apache-php52',
      hosts: [ 'phpmyadmin.dev' ],
      web_port: "8083",
      ssh_port: "22003",
      applications: [
          { name: 'lesdossiers',        docroot: 'lesdossiers/lesdossiers/web' }
      ]
    }
  - {
      image: 'apache-php54-imagick',
      hosts: [ 'phpmyadmin.dev', 'observer.dev' ],
      link: 'apache-php54-node',
      web_port: "8084",
      ssh_port: "22004",
      applications: [
          { name: 'comparateur',        docroot: 'comparateur/comparateur/web' }
      ]
    }
  - {
      image: 'apache-php54-pgp',
      hosts: [ 'mongodb.dev', 'api.dev' ],
      web_port: "8085",
      ssh_port: "22005",
      applications: [
          { name: 'pgp-api',            docroot: 'pgp-api/pgp-api/web' }
      ]
    }
  - {
      image: 'apache-php54-broadcast4',
      hosts: [ 'phpmyadmin.dev', 'broadcast-api.dev' ],
      web_port: "8086",
      ssh_port: "22006",
      applications: [
          { name: 'broadcast4',         docroot: 'broadcast4/broadcast4/web' },
      ]
    }
  - {
      image: 'apache-php55-node-imagik',
      hosts: [ 'phpmyadmin.dev', 'api.dev' ],
      web_port: "8087",
      ssh_port: "22007",
      applications: [
        { name: 'lta',                  docroot: 'lta/lta-apps/web' }
      ]
    }

Installation


~/workspace/exploitation/ansible • ./setupDev.sh docker

Déploiement


# Exemple pour le backoffice
~/workspace/exploitation/ansible • ./deployLocal.sh backoffice

Définir l'host de votre bdd en `phpmyadmin.dev` si votre bdd est en local

Accessibilité

# prérequis
~/workspace/exploitation/ansible • ./generateAliasesFromInventories.sh
~/workspace/exploitation/ansible • source ~/.zsh_recette_aliases
  • Avec votre navigateur préféré :
    • backoffice.dev
  • Par ssh
    • ssh_backoffice_local

Exécution des scripts, commandes sf, ...

Pas de commit/push avec github et svn (à faire en local)

Redémarrer les containers


# prérequis
# Configurer ~/workspace/exploitation/ansible/vars/app_instance/setupDev/local.yml
~/workspace/exploitation/ansible • ./setupDev.sh docker

~ • ./restartContainers.sh

Ne relancera pas un container non créer avec ansible

Pas de question(s) ?

Made with Slides.com