Manage AWS infrastructure using Ansible
Jump to navigation
Jump to search
↑ https://en.wikiversity.org/wiki/DevOps/Ansible/manage_AWS_infrastructure_using_Ansible
↑ https://docs.ansible.com/ansible/latest/modules/ec2_module.html
Configuration[edit]
Configure your computer for use Ansible to manage your Amazon AWS infrastructure.[1]
- 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]
- Start a AWS EC2 machine:
We will use ansible EC2 module[2]. 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 }}"
Related terms[edit]
See also[edit]
- 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/
- AWS Command Line Tool (CLI)
- Ansible: modules, plugins, Playbooks (examples)
ansible-playbook
,ansible-vault
,ansible-inventory
,ansible-config
, Ansible Tower, Ansible Galaxy (Roles) (ansible-galaxy
),ansible-cmdb
,gather facts
,ansible.cfg
,Ansible Molecule
, Ansible collections,register
,template
,--ask-pass
,--ask-become-pass
,remote_user:
,/etc/ansible/hosts
,ansible-doc
,ansible-lint
,.ansible/
,--forks
,--start-at-task
,changelog
,inventory
,Notify:
,ansible HOSTNAME -m ping
,gathering
,/usr/bin/ansible
,ansible -m ping
,ansible.builtin
,hosts: (Ansible)
,set fact:
,when:
,blockinfile:
,become method:
,include:
,git:
, AWX,ansible --help
, Tags, Ansible variables, versions - 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
Advertising: