要使用AWS和Ansible进行自动化,你可以按照以下步骤进行操作:
sudo apt update
sudo apt install ansible
ansible.cfg中添加以下内容:[defaults]
inventory =
其中是你的AWS主机清单文件的路径。
创建AWS凭证:你需要在AWS控制台上创建一个IAM用户,并为该用户提供适当的权限。随后,你将获得一个访问密钥ID和一个访问密钥。请确保将这些凭据保密,并妥善保存。
创建Ansible变量文件:你可以创建一个YAML格式的Ansible变量文件,其中包含用于连接AWS的凭据信息。例如,你可以创建一个名为aws_credentials.yml的文件,并在其中添加以下内容:
aws_access_key: YOUR_ACCESS_KEY
aws_secret_key: YOUR_SECRET_KEY
请将YOUR_ACCESS_KEY和YOUR_SECRET_KEY替换为你从AWS控制台上获得的访问密钥ID和访问密钥。
---
- name: Provision EC2 instance
hosts: localhost
gather_facts: False
vars_files:
- aws_credentials.yml
tasks:
- name: Launch EC2 instance
ec2:
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
instance_type: t2.micro
image: ami-0c94855ba95c71c99
key_name: my-key-pair
region: us-west-2
count: 1
assign_public_ip: yes
wait: yes
register: ec2
- name: Add new instance to host group
local_action: add_host hostname={{ item.public_ip }} groupname=ec2hosts
with_items: "{{ ec2.instances }}"
run_once: true
- name: Wait for SSH to be available
wait_for_connection:
delay: 5
timeout: 300
sleep: 5
- name: Ping all hosts
ping:
delegate_to: ec2hosts
- name: Terminate EC2 instance
ec2:
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"
instance_ids: "{{ item.id }}"
state: absent
with_items: "{{ ec2.instances }}"
run_once: true
上述Playbook做了以下工作:
ec2模块启动一个t2.micro类型的EC2实例。ec2hosts组中。ec2模块终止EC2实例。请确保将image、key_name、region等参数值替换为你自己的值。
ansible-playbook -i playbook.yml
请将替换为你的AWS主机清单文件的路径,playbook.yml替换为你的Playbook文件的路径。
这只是使用AWS和Ansible进行自动化的一个简单示例。你可以根据你的需求使用AWS和Ansible来执行更复杂的自动化任务。