188 lines
4.6 KiB
ReStructuredText
188 lines
4.6 KiB
ReStructuredText
.. page:: titlePage
|
|
|
|
.. class:: centredtitle
|
|
|
|
Configuring a LAMP stack
|
|
|
|
.. page:: standardPage
|
|
|
|
requirements.yml
|
|
================
|
|
|
|
.. code-block:: yaml
|
|
|
|
---
|
|
- src: geerlingguy.apache
|
|
- src: geerlingguy.composer
|
|
- src: geerlingguy.mysql
|
|
- src: geerlingguy.php
|
|
- src: geerlingguy.php-mysql
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "Requirements file for Ansible roles"
|
|
TextAnnotation "Typically requirements.yml"
|
|
TextAnnotation "Pulled from Ansible Galaxy"
|
|
TextAnnotation "Equivilent to composer.json/Packagist in PHP"
|
|
|
|
.. page:: titlePage
|
|
|
|
.. class:: centredtitle
|
|
|
|
``ansible-galaxy install
|
|
-r requirements.yml``
|
|
|
|
.. page:: standardPage
|
|
|
|
.. code-block:: yaml
|
|
|
|
# playbook.yml
|
|
|
|
---
|
|
- hosts: webservers
|
|
|
|
roles:
|
|
- geerlingguy.apache
|
|
- geerlingguy.mysql
|
|
- geerlingguy.php
|
|
- geerlingguy.php-mysql
|
|
- geerlingguy.composer
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "How do we use them?"
|
|
TextAnnotation "Add them to the playbook under 'roles'."
|
|
TextAnnotation "Ordering matters here!"
|
|
TextAnnotation "If these were ordered alphabetically then Composer install would fail because it would run before PHP is installed."
|
|
|
|
.. page::
|
|
|
|
.. code-block:: yaml
|
|
|
|
# playbook.yml
|
|
|
|
---
|
|
vars:
|
|
apache_vhosts:
|
|
- servername: dransible
|
|
documentroot: /app/web
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "configuring the Apache role to install virtual hosts."
|
|
|
|
.. page::
|
|
|
|
.. code-block:: yaml
|
|
|
|
# playbook.yml
|
|
|
|
---
|
|
vars:
|
|
php_version: 7.4
|
|
php_packages_extra:
|
|
- libapache2-mod-php{{ php_version }}
|
|
- libpcre3-dev
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "configuring PHP."
|
|
|
|
.. page::
|
|
|
|
.. code-block:: yaml
|
|
|
|
# playbook.yml
|
|
|
|
---
|
|
vars:
|
|
mysql_databases:
|
|
- name: main
|
|
|
|
mysql_users:
|
|
- name: user
|
|
password: secret
|
|
priv: main.*:ALL
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "configuring MySQL databases and users."
|
|
|
|
.. page:: titlePage
|
|
|
|
.. class:: centredtitle
|
|
|
|
``ansible-playbook provision.yml
|
|
-i hosts.yml``
|
|
|
|
.. page:: standardPage
|
|
|
|
.. code-block::
|
|
|
|
PLAY [Provision the webserver machines] ********************************************************************************
|
|
|
|
TASK [Gathering Facts] *************************************************************************************************
|
|
ok: [webservers]
|
|
|
|
TASK [geerlingguy.apache : Include OS-specific variables.] *************************************************************
|
|
ok: [webservers]
|
|
|
|
TASK [geerlingguy.apache : Include variables for Amazon Linux.]
|
|
skipping: [webservers]
|
|
|
|
TASK [geerlingguy.apache : Define apache_packages.] ********************************************************************
|
|
ok: [webservers]
|
|
|
|
TASK [geerlingguy.apache : include_tasks] ******************************************************************************
|
|
included: /Users/opdavies/.ansible/roles/geerlingguy.apache/tasks/setup-Debian.yml for webservers
|
|
|
|
TASK [geerlingguy.apache : Update apt cache.] **************************************************************************
|
|
changed: [webservers]
|
|
|
|
.. page::
|
|
|
|
.. code-block::
|
|
|
|
TASK [geerlingguy.composer : Ensure composer directory exists.] ********************************************************
|
|
ok: [webservers]
|
|
|
|
TASK [geerlingguy.composer : include_tasks] ****************************************************************************
|
|
skipping: [webservers]
|
|
|
|
TASK [geerlingguy.composer : include_tasks] ****************************************************************************
|
|
skipping: [webservers]
|
|
|
|
RUNNING HANDLER [geerlingguy.apache : restart apache] ******************************************************************
|
|
changed: [webservers]
|
|
|
|
RUNNING HANDLER [geerlingguy.mysql : restart mysql] ********************************************************************
|
|
changed: [webservers]
|
|
|
|
RUNNING HANDLER [geerlingguy.php : restart webserver] ******************************************************************
|
|
changed: [webservers]
|
|
|
|
RUNNING HANDLER [geerlingguy.php : restart php-fpm] ********************************************************************
|
|
skipping: [webservers]
|
|
|
|
PLAY RECAP *************************************************************************************************************
|
|
webservers : ok=111 changed=32 unreachable=0 failed=0 skipped=78 rescued=0 ignored=0
|
|
|
|
.. page::
|
|
|
|
.. image:: images/after-provision-1.png
|
|
:width: 24cm
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "IP address of server, Apache is installed and running."
|
|
|
|
.. page::
|
|
|
|
.. image:: images/after-provision-2.png
|
|
:width: 24cm
|
|
|
|
.. raw:: pdf
|
|
|
|
TextAnnotation "No application code on the server yet."
|
|
|