LAMP Stack comprises the following open-source software applications.
- Linux – This is the operating system hosting the Applications.
- Apache – Apache HTTP is a free and open-source cross-platform web server.
- MySQL– Open Source relational database management system.
- PHP – Programming/Scripting Language used for developing Web applications.
Pre-requisites:
- Install Ansible on Ubuntu instance(Mgmt node)
- Ubuntu EC2 instance (target) where LAMP stack needs to be installed. Click here to know how to create new EC2 instance using Ansible
- Setup SSH keys and upload public key into Ubuntu EC2 instance where LAMP stack will be installed.
- Modify hosts/inventory file to add target EC2 instance ip address/dns name.
- port 80 is opened in firewall rule for Apache
Steps to setup SSH keys:
1. Login to Ansible management server/machine. Create SSH keys in Ansible host machine by executing the below command: (if you already have keys created, please skip this step)
ssh-keygen
enter three times..now you will see keys successfully created.
2. Execute the below command on Ansible management node and copy the public key content:
sudo cat ~/.ssh/id_rsa.pub
copy the above output.
3. Now login into target node where you want to install LAMP stack, execute the below command to open the file
sudo vi /home/ubuntu/.ssh/authorized_k eys
type shift A and then enter now
and paste the key in the above file. please do not delete any existing values in this file.
4. Now go back to Ansible mgmt node, do changes in /etc/ansible/hosts file to include the node you will be installing software. Make sure you add public or private IP address of target node as highlighted below in red color:
sudo vi /etc/ansible/hosts
[My_Group]
xx.xx.xx.xx ansible_ssh_user=ubuntu ansible_ssh_private_key_file=~ /.ssh/id_rsa ansible_python_interpreter=/us r/bin/python3
enter three times..now you will see keys successfully created.
2. Execute the below command on Ansible management node and copy the public key content:
sudo cat ~/.ssh/id_rsa.pub
copy the above output.
3. Now login into target node where you want to install LAMP stack, execute the below command to open the file
sudo vi /home/ubuntu/.ssh/authorized_k
type shift A and then enter now
and paste the key in the above file. please do not delete any existing values in this file.
4. Now go back to Ansible mgmt node, do changes in /etc/ansible/hosts file to include the node you will be installing software. Make sure you add public or private IP address of target node as highlighted below in red color:
sudo vi /etc/ansible/hosts
[My_Group]
xx.xx.xx.xx ansible_ssh_user=ubuntu ansible_ssh_private_key_file=~
sudo vi aws-infra-role/tasks/installLAMP.yml
---
- name: Task # 1 - Update APT package manager repositories cache
become: true
apt:
update_cache: yes
- name: Task # 2 - Install LAMP stack using Ansible
become: yes
apt:
name: "{{ packages }}"
state: present
vars:
packages:
- apache2
- mysql-server
- php
Create Ansible main playbook
sudo vi aws-infra-role/setup-lamp.yml
---
# This Playbook installs LAMP stack
- hosts: My_Group
gather_facts: False
tags: LAMP creation
tasks:
- include: tasks/installLAMP.yml
Execute Ansible Role
This is the execution result of the playbook.
Now go to browser and use target node DNS to confirm if Apache is installed. make sure port 80 is opened in security firewall rules.
Now login to target EC2 instance, type below commands to verify PHP and MySql versions:
php --version
mysql --version
No comments:
Post a Comment