This is a Ansible role to deploy a LAMP Stack infrastructure on centos7/amazon-linux2 hosts.
- Playbooks for complex tasks can become lengthy and therefore difficult to read and understand. The solution to this problem is Ansible roles. A role directory structure contains directories: defaults, vars, tasks, files, templates, meta, handlers. Each directory must contain a main.yml file which contains relevant content.
Here is the role I have created for this project,
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── inventory.txt
├── key.pem
├── lamp-wordpress.yml
├── meta
│ └── main.yml
├── README.md
├── tasks
│ ├── amazon.yml
│ ├── centos.yml
│ ├── main.yml
│ └── wordpress.yml
├── templates
│ ├── httpd.conf.temp
│ ├── virtualhost.conf.temp
│ └── wp-config.php.temp
├── tests
│ ├── inventory
│ └── test.yml
└── vars
└── main.yml
- apache
- php7.4
- mariadb-server
You must have the latest ansible version installed.
- Add hosts in an inventory file under your working directory.
- I have included the configuration informations for both apache and mariadb in the vars section. Please modify as per your requirement.
Run the below command to check if the playbook have any syntax error,
ansible-playbook -i inventory.txt lamp-wordpress.yml --syntax-check
then,
ansible-playbook -i inventory.txt lamp-wordpress.yml
Thank you.