introduction
Ce tutoriel couvre le processus de provisionnement d’une application PHP de base avec Ansible. L’objectif à la fin de ce didacticiel est de faire en sorte que votre nouveau serveur Web serve une application PHP de base sans une seule connexion SSH ou une commande manuelle exécutée sur le droplet cible.
Nous utiliserons le framework Laravel comme exemple d’application PHP, mais ces instructions peuvent être facilement modifiées pour prendre en charge d’autres frameworks et applications si vous en possédez déjà un.
Conditions préalables
Pour ce tutoriel, nous utiliserons Ansible pour installer et configurer Nginx, PHP et d’autres services sur un droplet Ubuntu 14.04. Ce didacticiel s’appuie sur les connaissances de base d’Ansible. Si vous êtes nouveau dans Ansible, vous pouvez le lire à travers https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-ansible-on-an- ubuntu-12-04-vps [ce tutoriel de base Ansible] en premier.
Pour suivre ce tutoriel, vous aurez besoin de:
-
Un droplet Ubuntu 14.04 de toute taille que nous utiliserons pour configurer et déployer notre application PHP. L’adresse IP de cette machine sera appelée «++» tout au long du tutoriel.
-
Un Ubuntu 14.04 Droplet qui sera utilisé pour Ansible. C’est la Droplet à laquelle vous serez connecté pour l’intégralité de ce tutoriel.
-
Sudo utilisateurs non root configurés pour les deux gouttelettes.
-
Clés SSH pour que le Anslet Droplet autorise la connexion au Droplet de déploiement PHP, que vous pouvez configurer en suivant: https://www.digitalocean.com/community/tutorials/how-to-set-up-ssh-keys—2 [ce tutoriel] sur votre Ansible Droplet.
Étape 1 - Installation de Ansible
La première étape consiste à installer Ansible. Ceci est facilement accompli en installant PPA (Personal Package Archive), et en installant le paquet Ansible avec + apt +
.
Premièrement, ajoutez le PPA en utilisant la commande + apt-add-repository +
.
sudo apt-add-repository ppa:ansible/ansible
Une fois cette opération terminée, mettez à jour le cache + apt +
.
sudo apt-get update
Enfin, installez Ansible.
sudo apt-get install ansible
Une fois Ansible installé, nous allons créer un nouveau répertoire dans lequel travailler et configurer une configuration de base. Par défaut, Ansible utilise un fichier hôtes situé dans + / etc / ansible / hosts +
, qui contient tous les serveurs qu’il gère. Bien que ce fichier convienne à certains cas d’utilisation, il est global, ce qui n’est pas ce que nous voulons ici.
Pour ce tutoriel, nous allons créer un fichier d’hôtes local et l’utiliser à la place. Nous pouvons le faire en créant un nouveau fichier de configuration Ansible dans notre répertoire de travail, que nous pouvons utiliser pour indiquer à Ansible de rechercher un fichier hôtes dans le même répertoire.
Créez un nouveau répertoire (que nous utiliserons pour la suite de ce tutoriel).
mkdir ~/ansible-php
Déplacez-vous dans le nouveau répertoire.
cd ~/ansible-php/
Créez un nouveau fichier nommé + ansible.cfg +
et ouvrez-le pour édition en utilisant + nano +
ou votre éditeur de texte favori.
nano ansible.cfg
Ajoutez l’option de configuration + hostfile +
avec la valeur + hosts +
dans le groupe + [par défaut] +
en copiant le texte suivant dans le fichier + ansible.cfg +
.
ansible.cfg
[defaults]
hostfile = hosts
Enregistrez et fermez le fichier + ansible.cfg +
. Ensuite, nous allons créer le fichier + hosts +
, qui contiendra l’adresse IP du Droplet PHP sur lequel nous déploierons notre application.
nano hosts
Copiez le texte ci-dessous pour ajouter une section à + php + `, en remplaçant" "par l'adresse IP de votre serveur et" "par l’utilisateur sudo non root créé dans les conditions préalables de votre PHP Droplet.
les hôtes
[php]
ansible_ssh_user=
Enregistrez et fermez le fichier + hosts
. Lançons une vérification simple pour nous assurer que Ansible est capable de se connecter à l’hôte comme prévu en appelant le module + ping +
sur le nouveau groupe + php +
.
ansible php -m ping
Vous pouvez obtenir une vérification d’authentification d’hôte SSH, selon que vous vous êtes déjà connecté à cet hôte auparavant. Le ping devrait revenir avec une réponse réussie, qui ressemble à ceci:
Sortie
111.111.111.111 | success >> {
"changed": false,
"ping": "pong"
}
Ansible est maintenant installé et configuré. nous pouvons passer à la configuration de notre serveur Web.
Étape 2 - Installation des packages requis
Dans cette étape, nous allons installer certains paquets système requis en utilisant Ansible et + apt +
. En particulier, nous allons installer + git +
, + nginx +
, '+ sqlite3 + ,' + mcrypt +
, et quelques paquets + php5 - * +
.
Avant d’ajouter le module + apt +
pour installer les paquets que nous voulons, nous devons créer un livre de base. Nous allons construire sur ce cahier au fur et à mesure de l’exécution du didacticiel. Créez un nouveau playbook appelé + php.yml +
.
nano php.yml
Coller dans la configuration suivante. Les deux premières lignes spécifient le groupe d’hôtes que nous souhaitons utiliser (+ php +
) et s’assurent qu’il exécute des commandes avec + sudo +
par défaut. Le reste ajoute dans un module avec les paquets dont nous avons besoin. Vous pouvez le personnaliser pour votre propre application ou utiliser la configuration ci-dessous si vous suivez l’exemple de l’application Laravel.
---
- hosts: php
sudo: yes
tasks:
- name: install packages
apt: name={{ item }} update_cache=yes state=latest
with_items:
- git
- mcrypt
- nginx
- php5-cli
- php5-curl
- php5-fpm
- php5-intl
- php5-json
- php5-mcrypt
- php5-sqlite
- sqlite3
Enregistrez le fichier + php.yml +
. Enfin, lancez + ansible-playbook +
pour installer les paquets sur le droplet. N’oubliez pas d’utiliser l’option + - ask-sudo-pass +
si votre utilisateur sudo sur votre Droplet PHP requiert un mot de passe.
ansible-playbook php.yml --ask-sudo-pass
Étape 3 - Modification des fichiers de configuration du système
Dans cette section, nous allons modifier certains fichiers de configuration système sur le droplet PHP. L’option de configuration la plus importante à modifier (à part les fichiers de Nginx, qui seront abordés ultérieurement) est l’option + cgi.fix_pathinfo +
dans + php5-fpm +
, car la valeur par défaut représente un risque pour la sécurité.
Nous allons d’abord expliquer toutes les sections que nous allons ajouter à ce fichier, puis inclure l’ensemble du fichier + php.yml +
que vous pourrez copier et coller.
Le module lineinfile peut être utilisé pour s’assurer que la valeur de configuration dans le fichier correspond exactement à ce que nous attendons. Pour ce faire, vous pouvez utiliser une expression générique normale afin de permettre à Ansible de comprendre la plupart des formes dans lesquelles le paramètre est susceptible de se trouver. Nous devons également redémarrer + php5-fpm +
et '+ nginx + pour que le changement prenne effet. Nous devons donc ajouter deux gestionnaires, dans une nouvelle section
+ handlers + `. Les gestionnaires sont parfaits pour cela, car ils ne sont déclenchés que lorsque la tâche change. Ils s’exécutent également à la fin du livre de jeu, ce qui permet à plusieurs tâches d’appeler le même gestionnaire, qui ne sera exécuté qu’une fois.
La section à faire ci-dessus ressemblera à ceci:
- name: ensure php5-fpm cgi.fix_pathinfo=0
lineinfile: dest=/etc/php5/fpm/php.ini regexp='^(.*)cgi.fix_pathinfo=' line=cgi.fix_pathinfo=0
notify:
- restart php5-fpm
- restart nginx
handlers:
- name: restart php5-fpm
service: name=php5-fpm state=restarted
- name: restart nginx
service: name=nginx state=restarted
Note: bogue Ansible version 1.9.1
Ensuite, nous devons également nous assurer que le module + php5-mcrypt +
est activé. Ceci est fait en exécutant le script + php5enmod +
avec la tâche shell et en vérifiant que le fichier + 20-mcrypt.ini +
est au bon endroit quand il est activé. Notez que nous disons à Ansible que la tâche crée un fichier spécifique. Si ce fichier existe, la tâche ne sera pas exécutée.
- name: enable php5 mcrypt module
shell: php5enmod mcrypt
args:
creates: /etc/php5/cli/conf.d/20-mcrypt.ini
Maintenant, ouvrez + php.yml +
pour éditer à nouveau.
nano php.yml
Ajoutez les tâches et les gestionnaires ci-dessus afin que le fichier corresponde à ce qui suit:
---
- hosts: php
sudo: yes
tasks:
- name: install packages
apt: name={{ item }} update_cache=yes state=latest
with_items:
- git
- mcrypt
- nginx
- php5-cli
- php5-curl
- php5-fpm
- php5-intl
- php5-json
- php5-mcrypt
- php5-sqlite
- sqlite3
- name: ensure php5-fpm cgi.fix_pathinfo=0
lineinfile: dest=/etc/php5/fpm/php.ini regexp='^(.*)cgi.fix_pathinfo=' line=cgi.fix_pathinfo=0
notify:
- restart php5-fpm
- restart nginx
- name: enable php5 mcrypt module
shell: php5enmod mcrypt
args:
creates: /etc/php5/cli/conf.d/20-mcrypt.ini
handlers:
- name: restart php5-fpm
service: name=php5-fpm state=restarted
- name: restart nginx
service: name=nginx state=restarted
Enfin, lancez le playbook.
ansible-playbook php.yml --ask-sudo-pass
Droplet dispose maintenant de tous les packages requis installés et de la configuration de base configurée et prête à fonctionner.
Étape 4 - Clonage du référentiel Git
Dans cette section, nous allons cloner le référentiel d’infrastructure Laravel dans votre Droplet à l’aide de Git. Comme à l’étape 3, nous expliquerons toutes les sections que nous allons ajouter au livre de jeu, puis inclurons l’intégralité du fichier + php.yml +
que vous pourrez copier et coller.
Avant de cloner notre dépôt Git, nous devons nous assurer que + / var / www +
existe. Nous pouvons le faire en créant une tâche avec le module de fichiers.
- name: create /var/www/ directory
file: dest=/var/www/ state=directory owner=www-data group=www-data mode=0700
Comme mentionné ci-dessus, nous devons utiliser le module Git pour cloner le référentiel sur notre Droplet. Le processus est simple car tout ce dont nous avons normalement besoin pour une commande + git clone +
est le référentiel source. Dans ce cas, nous définirons également la destination et indiquerons à Ansible de ne pas mettre à jour le référentiel s’il existe déjà en définissant + update = no +
. Comme nous utilisons Laravel, l’URL du référentiel git que nous allons utiliser est + https: // github.com / laravel / laravel.git +
.
Cependant, nous devons exécuter la tâche en tant qu’utilisateur + www-data
pour nous assurer que les autorisations sont correctes. Pour ce faire, nous pouvons dire à Ansible d’exécuter la commande en tant qu’utilisateur spécifique en utilisant + sudo +
. La tâche finale ressemblera à ceci:
- name: Clone git repository
git: >
dest=/var/www/laravel
repo=https://github.com/laravel/laravel.git
update=no
sudo: yes
sudo_user: www-data
-
Remarque *: Pour les référentiels basés sur SSH, vous pouvez ajouter
+ accept_hostkey = yes +
pour empêcher la vérification de l’hôte SSH de suspendre la tâche.
Comme auparavant, ouvrez le fichier + php.yml +
pour le modifier.
nano php.yml
Ajoutez les tâches ci-dessus au playbook; la fin du fichier doit correspondre à ce qui suit:
...
- name: enable php5 mcrypt module
shell: php5enmod mcrypt
args:
creates: /etc/php5/cli/conf.d/20-mcrypt.ini
- name: create /var/www/ directory
file: dest=/var/www/ state=directory owner=www-data group=www-data mode=0700
- name: Clone git repository
git: >
dest=/var/www/laravel
repo=https://github.com/laravel/laravel.git
update=no
sudo: yes
sudo_user: www-data
handlers:
- name: restart php5-fpm
service: name=php5-fpm state=restarted
- name: restart nginx
service: name=nginx state=restarted
Enregistrez et fermez le livret, puis lancez-le.
ansible-playbook php.yml --ask-sudo-pass
Étape 5 - Création d’une application avec Composer
Dans cette étape, nous utiliserons Composer pour installer l’application PHP et ses dépendances.
Composer a une commande + create-project +
qui installe toutes les dépendances requises puis exécute les étapes de création de projet définies dans la section + post-create-project-cmd +
du fichier + composer.json +
. C’est le meilleur moyen de s’assurer que l’application est configurée correctement pour sa première utilisation.
Nous pouvons utiliser la tâche Ansible suivante pour télécharger et installer Composer globalement sous la forme + / usr / local / bin / composer +
. Il sera ensuite accessible à toute personne utilisant Droplet, y compris Ansible.
- name: install composer
shell: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
args:
creates: /usr/local/bin/composer
Avec Composer installé, vous pouvez utiliser un module Composer. Dans notre cas, nous voulons indiquer à Composer où se trouve notre projet (en utilisant le paramètre + rép_travail +
), et exécuter la commande + create-project +
. Nous devons également ajouter le paramètre + optimise_autoloader = no +
, car cet indicateur n’est pas pris en charge par la commande + create-project +
. Comme la commande + git
, nous souhaitons également l’exécuter en tant qu’utilisateur` + www-data` pour nous assurer que les autorisations sont valides. En réunissant tout cela, nous avons cette tâche:
- name: composer create-project
composer: command=create-project working_dir=/var/www/laravel optimize_autoloader=no
sudo: yes
sudo_user: www-data
-
Remarque *: La tâche
+ create-project +
peut prendre beaucoup de temps sur un nouveau Droplet, car Composer aura un cache vide et devra télécharger tout le nouveau.
Ouvrez maintenant le fichier + php.yml +
pour le modifier.
nano php.yml
Ajoutez les tâches ci-dessus à la fin de la section + tasks +
, au-dessus de + handlers +
, afin que la fin du livre de jeu corresponde à ce qui suit:
...
- name: Clone git repository
git: >
dest=/var/www/laravel
repo=https://github.com/laravel/laravel.git
update=no
sudo: yes
sudo_user: www-data
- name: install composer
shell: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
args:
creates: /usr/local/bin/composer
- name: composer create-project
composer: command=create-project working_dir=/var/www/laravel optimize_autoloader=no
sudo: yes
sudo_user: www-data
handlers:
- name: restart php5-fpm
service: name=php5-fpm state=restarted
- name: restart nginx
service: name=nginx state=restarted
Enfin, lancez le playbook.
ansible-playbook php.yml --ask-sudo-pass
Que se passerait-il si nous utilisions à nouveau Ansible maintenant? Le + composer create-project +
s’exécutera à nouveau et, dans le cas de Laravel, cela signifie un nouveau + APP_KEY +
. Donc, ce que nous voulons plutôt, c’est que cette tâche ne soit exécutée qu’après un nouveau clone. Nous pouvons nous assurer qu’il ne soit exécuté qu’une seule fois en enregistrant une variable avec les résultats de la tâche + git clone +
, puis en vérifiant ces résultats dans la tâche + composer create-project +
. Si la tâche + git clone +
était Changed, alors nous lançons + composer create-project +
, sinon, elle est ignorée.
-
Remarque: * Il semble y avoir un bogue dans certaines versions du module Ansible
+ composer +
, et il peut sortir OK au lieu de Changed, car il ignore que les scripts ont été exécutés même si aucune dépendance n’a été installée.
Ouvrez le fichier + php.yml +
pour le modifier.
nano php.yml
Trouvez la tâche + git clone +
. Ajoutez l’option + register +
pour enregistrer les résultats de la tâche dans la variable + clonée +
, comme ceci:
- name: Clone git repository
git: >
dest=/var/www/laravel
repo=https://github.com/laravel/laravel.git
update=no
sudo: yes
sudo_user: www-data
Ensuite, recherchez la tâche + composer create-project
. Ajoutez l’option + quand +
pour vérifier la variable + clonée +
pour voir si elle a changé ou non.
- name: composer create-project
composer: command=create-project working_dir=/var/www/laravel optimize_autoloader=no
sudo: yes
sudo_user: www-data
Enregistrez le livre de lecture et lancez-le:
ansible-playbook php.yml --ask-sudo-pass
Maintenant, Composer cessera de changer le + APP_KEY +
à chaque exécution.
Étape 6 - Mise à jour des variables d’environnement
Dans cette étape, nous mettrons à jour les variables d’environnement pour notre application.
Laravel est livré avec un fichier + .env +
par défaut qui définit + APP_ENV +
sur + local +
et + APP_DEBUG +
sur + true +
. Nous voulons les échanger contre + production
et` + faux`, respectivement. Cela peut être fait simplement en utilisant le module + lineinfile +
avec les tâches suivantes.
- name: set APP_DEBUG=false
lineinfile: dest=/var/www/laravel/.env regexp='^APP_DEBUG=' line=APP_DEBUG=false
- name: set APP_ENV=production
lineinfile: dest=/var/www/laravel/.env regexp='^APP_ENV=' line=APP_ENV=production
Ouvrez le fichier + php.yml +
pour le modifier.
nano php.yml
Ajoutez cette tâche au playbook; la fin du fichier doit correspondre à ce qui suit:
...
- name: composer create-project
composer: command=create-project working_dir=/var/www/laravel optimize_autoloader=no
sudo: yes
sudo_user: www-data
when: cloned|changed
- name: set APP_DEBUG=false
lineinfile: dest=/var/www/laravel/.env regexp='^APP_DEBUG=' line=APP_DEBUG=false
- name: set APP_ENV=production
lineinfile: dest=/var/www/laravel/.env regexp='^APP_ENV=' line=APP_ENV=production
handlers:
- name: restart php5-fpm
service: name=php5-fpm state=restarted
- name: restart nginx
service: name=nginx state=restarted
Enregistrez et lancez le playbook:
ansible-playbook php.yml --ask-sudo-pass
Le module + lineinfile +
est très utile pour les réglages rapides de n’importe quel fichier texte, et il est très utile pour s’assurer que les variables d’environnement comme celle-ci sont définies correctement.
Étape 7 - Configuration de Nginx
Dans cette section, nous allons configurer un Nginx pour servir l’application PHP.
Si vous visitez votre Droplet dans votre navigateur Web maintenant (c.-à-d. + http: /// +
), vous verrez la page par défaut de Nginx à la place de la page du nouveau projet Laravel. En effet, nous devons toujours configurer notre serveur Web Nginx pour qu’il serve l’application à partir du répertoire + / var / www / laravel / public +
. Pour ce faire, nous devons mettre à jour notre configuration par défaut de Nginx avec ce répertoire et ajouter une prise en charge de + php-fpm +
, pour qu’il puisse gérer les scripts PHP.
Créez un nouveau fichier nommé + nginx.conf +
:
nano nginx.conf
Enregistrez ce bloc de serveur dans ce fichier. Vous pouvez consulter l’étape 4 de https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lp-lack-stack-on-ubuntu-14-04#step-four -% E2% 80% 94-configure-nginx-à-utiliser-notre-processeur-php [ce tutoriel] pour plus de détails sur cette configuration de Nginx; Les modifications ci-dessous spécifient où se trouve le répertoire public Laravel et s’assurent que Nginx utilise le nom d’hôte que nous avons défini dans le fichier + hosts +
en tant que + nom_serveur +
avec la variable + inventaire_hôte +
.
nginx.conf
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /var/www/laravel/public;
index index.php index.html index.htm;
server_name {{ inventory_hostname }};
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/laravel/public;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Enregistrez et fermez le fichier + nginx.conf
.
Maintenant, nous pouvons utiliser le module template pour diffuser notre nouveau fichier de configuration. Le module + template +
peut sembler très similaire au module + copy +
, mais il y a une grande différence. + copy +
copiera un ou plusieurs fichiers sur * sans faire de changement *, tandis que + template +
copie un seul fichier et résoudra toutes les variables du fichier. Comme nous avons utilisé + {{inventaire_hôte}} +
dans notre fichier de configuration, nous utilisons le module + template +
pour qu’il soit résolu en adresse IP que nous avons utilisée dans le fichier + hosts +
. De cette façon, nous n’avons pas besoin de coder en dur les fichiers de configuration utilisés par Ansible.
Cependant, comme d’habitude lors de la rédaction de tâches, nous devons considérer ce qui se passera dans Droplet. Comme nous modifions la configuration de Nginx, nous devons redémarrer Nginx et + php-fpm +
. Ceci est fait en utilisant les options + notify +
.
- name: Configure nginx
template: src=nginx.conf dest=/etc/nginx/sites-available/default
notify:
- restart php5-fpm
- restart nginx
Ouvrez votre fichier + php.yml +
:
nano php.yml
Ajoutez cette tâche nginx à la fin de la section des tâches. L’ensemble du fichier + php.yml +
devrait maintenant ressembler à ceci:
php.yml
---
- hosts: php
sudo: yes
tasks:
- name: install packages
apt: name={{ item }} update_cache=yes state=latest
with_items:
- git
- mcrypt
- nginx
- php5-cli
- php5-curl
- php5-fpm
- php5-intl
- php5-json
- php5-mcrypt
- php5-sqlite
- sqlite3
- name: ensure php5-fpm cgi.fix_pathinfo=0
lineinfile: dest=/etc/php5/fpm/php.ini regexp='^(.*)cgi.fix_pathinfo=' line=cgi.fix_pathinfo=0
notify:
- restart php5-fpm
- restart nginx
- name: enable php5 mcrypt module
shell: php5enmod mcrypt
args:
creates: /etc/php5/cli/conf.d/20-mcrypt.ini
- name: create /var/www/ directory
file: dest=/var/www/ state=directory owner=www-data group=www-data mode=0700
- name: Clone git repository
git: >
dest=/var/www/laravel
repo=https://github.com/laravel/laravel.git
update=no
sudo: yes
sudo_user: www-data
register: cloned
- name: install composer
shell: curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
args:
creates: /usr/local/bin/composer
- name: composer create-project
composer: command=create-project working_dir=/var/www/laravel optimize_autoloader=no
sudo: yes
sudo_user: www-data
when: cloned|changed
- name: set APP_DEBUG=false
lineinfile: dest=/var/www/laravel/.env regexp='^APP_DEBUG=' line=APP_DEBUG=false
- name: set APP_ENV=production
lineinfile: dest=/var/www/laravel/.env regexp='^APP_ENV=' line=APP_ENV=production
- name: Configure nginx
template: src=nginx.conf dest=/etc/nginx/sites-available/default
notify:
- restart php5-fpm
- restart nginx
handlers:
- name: restart php5-fpm
service: name=php5-fpm state=restarted
- name: restart nginx
service: name=nginx state=restarted
Enregistrez et lancez à nouveau le livre de lecture:
ansible-playbook php.yml --ask-sudo-pass
Une fois l’opération terminée, revenez dans votre navigateur et actualisez-le. Vous devriez maintenant voir la page du nouveau projet Laravel!
Conclusion
Ce tutoriel couvre le déploiement d’une application PHP avec un référentiel public. Bien qu’il soit parfait pour apprendre le fonctionnement d’Ansible, vous ne travaillerez pas toujours sur des projets entièrement ouverts avec des référentiels ouverts. Cela signifie que vous devrez authentifier le clone + git +
à l’étape 3 avec votre référentiel privé. Cela peut être très facilement fait en utilisant des clés SSH.
Par exemple, une fois que vous avez créé et défini vos clés de déploiement SSH sur votre référentiel, vous pouvez utiliser Ansible pour les copier et les configurer sur votre serveur avant la tâche + git clone +
:
- name: create /var/www/.ssh/ directory
file: dest=/var/www/.ssh/ state=directory owner=www-data group=www-data mode=0700
- name: copy private ssh key
copy: src=deploykey_rsa dest=/var/www/.ssh/id_rsa owner=www-data group=www-data mode=0600
Cela devrait permettre au serveur de s’authentifier correctement et de déployer votre application.
'' '' '
Vous venez de déployer une application PHP de base sur un serveur Web Nginx basé sur Ubuntu utilisant Composer pour gérer les dépendances! Tout cela a été effectué sans qu’il soit nécessaire de se connecter directement à votre PHP Droplet et d’exécuter une seule commande manuelle.