DevOps/Ansible/manage AWS infrastructure using Ansible
< DevOps < Ansible
Configuration
Configure your computer for use Ansible to manage your Amazon AWS infrastructure.
- 1) Install aws cli, python, apt-get install python-pip and python pip boto
- 2) Install Ansible, macOS:
brew install ansible - 3) Configure your local aws cli installation to allow you to make operation on your AWS infrastructure.
Installation one line: apt-get install awscli python-pip ansible && pip install boto
Basic Operations
- Start a AWS EC2 machine:
We will use ansible EC2 module[1]. Create a new file, for example aws_start_machine.yml. Put your instance_ids and region values, (execute aws ec2 describe-instances to obtain them or aws ec2 describe-instances | grep InstanceId to obtain only InstanceIds) and execute your newly created script,
chmod +x aws_start_machine.yml; ./aws_start_machine.yml
Example. Start and already created EC2 instance. aws_start_ec2server.yml file:
- (Remember just to use spaces and not tabulator for your YML file)
#!/usr/bin/env ansible-playbook
- name: Starting AWS machine
hosts: localhost
gather_facts: false
connection: local
vars:
instance_ids:
- 'i-09999999999' # you will have to modify this line with the InstanceId of your server
region: us-east-2 # you will have to change this line to region where your machine was created
tasks:
- name: Starting AWS Machine. It Will take some time.
ec2:
instance_ids: '{{ instance_ids }}'
region: '{{ region }}'
state: running
wait: True
Getting information from a AWS machine:
Example aws_status_ec2server.yml file:
#!/usr/bin/env ansible-playbook
- name: Status ec2 instance
hosts: localhost
connection: local
tasks:
- ec2_instance_facts:
instance_ids:
- i-0bd3xx999999999
register: ec2_facts
- debug: msg="{{ ec2_facts }}"
See also
- DevOps/Ansible
- List of Debian9 Image Id (ami): https://wiki.debian.org/Cloud/AmazonEC2Image/Stretch
- List of Ubuntu Image Id (ami): https://cloud-images.ubuntu.com/locator/ec2/
- Cloud computing/Amazon Web Services/AWS Command Line Tool (CLI)
- Ansible EC2 module documentation https://docs.ansible.com/ansible/2.6/modules/ec2_module.html
- Ansible Cloud modules https://docs.ansible.com/ansible/2.6/modules/list_of_cloud_modules.html