This exercise provides a simple yet realistic task of deploying a basic website to dynamically provisioned AWS infrastructure. We will work with multiple AWS components through Ansible, and also perform basic web server configuration against a Linux host with Ansible. This exercise will help demonstrate a portion of the power provided by rolling cloud provisioning into deployment automation.
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Run the Provided Playbook `/home/ansible/get-environment-details.yml` to Collect Necessary Environment Details
After logging into the EC2 instance, become the
ansible
user:su - ansible
The password is the same as it is for
cloud_user
.Run the following command:
ansible-playbook /home/ansible/get-environment-details.yml
- Replace the word “placeholder” in `/home/ansible/env_vars.yml` with a Unique S3 Bucket Name
- Open
/home/ansible/env_vars.yml
with a text editor. - Change the value
placeholder
to a unique S3 bucket name of your choosing.- Be sure to stick to the S3 naming conventions (https://docs.aws.amazon.com/AmazonS3/latest/dev/BucketRestrictions.html for details).
- Open
- Create a Playbook and Add a Play per the Lab Instructions
- Create
/home/ansible/deploy.yml
- Add an Ansible play that configures your EC2 key pair, EC2 instance, and S3 bucket.
- Use the provided variable file for required parameter configuration.
- Create
- Add Another Play to Further Configure the New EC2 Instance
- Add another play that will:
- Configure the new EC2 instance.
- Install the
httpd
package - Start and enable the
httpd
service. - Deploy the provided template file into
/var/www/html
.
- Use
/home/ansible/env_vars.yml
for required parameter configuration values.
- Add another play that will:
- Run `/home/ansible/deploy.yml` to Perform the Required Tasks
Run the following command:
ansible-playbook /home/ansible/deploy.yml