DevOps/Ansible/manage AWS infrastructure using Ansible
Appearance
Configuration
[edit | edit source]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
[edit | edit source]- 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
[edit | edit source]- 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