我想使用 Ansible 工具创建 Amazon EC2 密钥对。不想使用 AWS CLI 来创建。可以使用 Ansible 来创建 AWS ec2 密钥吗?
你需要使用 Ansible 的 ec2_key 模块。这个模块依赖于 python-boto 2.5 版本或者更高版本。 boto 是亚马逊 Web 服务的一个 Python API。你可以将 boto 用于 Amazon S3、Amazon EC2 等其他服务。简而言之,你需要安装 Ansible 和 boto 模块。我们一起来看下如何安装 boto 并结合 Ansible 使用。
第一步 – 在 Ubuntu 上安装最新版本的 Ansible
你必须给你的系统配置 PPA 来安装最新版的 Ansible。为了管理你从各种 PPA(Personal Package Archives)安装软件的仓库,你可以上传 Ubuntu 源码包并编译,然后通过 Launchpad 以 apt 仓库的形式发布。键入如下命令 apt-get 命令或者 apt 命令:
$ sudo apt update
$ sudo apt upgrade
$ sudo apt install software-properties-common
接下来给你的系统的软件源中添加 ppa:ansible/ansible
。
$ sudo apt-add-repository ppa:ansible/ansible
更新你的仓库并安装 Ansible:
$ sudo apt update
$ sudo apt install ansible
安装 boto:
$ pip3 install boto3
关于在CentOS/RHEL 7.x上安装 Ansible 的注意事项
你需要在 CentOS 和 RHEL 7.x 上配置 EPEL 源和 yum命令
$ cd /tmp
$ wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ ls *.rpm
$ sudo yum install epel-release-latest-7.noarch.rpm
$ sudo yum install ansible
安装 boto:
$ pip install boto3
第二步 2 – 配置 boto
你需要配置 AWS credentials/API 密钥。参考 “AWS Security Credentials” 文档如何创建 API key。用 mkdir
命令创建一个名为 ~/.aws
的目录,然后配置 API key:
$ mkdir -pv ~/.aws/
$ vi ~/.aws/credentials
[default]
aws_access_key_id = YOUR-ACCESS-KEY-HERE
aws_secret_access_key = YOUR-SECRET-ACCESS-KEY-HERE
还需要配置默认 AWS 区域:
$ vi ~/.aws/config
输出样例如下:
[default]
region = us-west-1
通过创建一个简单的名为 test-boto.py
的 Python 程序来测试你的 boto 配置是否正确:
#!/usr/bin/python3
# A simple program to test boto and print s3 bucket names
import boto3
t = boto3.resource('s3')
for b in t.buckets.all():
print(b.name)
按下面方式来运行该程序:
$ python3 test-boto.py
输出样例:
nixcraft-images
nixcraft-backups-cbz
nixcraft-backups-forum
上面输出可以确定 Python-boto 可以使用 AWS API 正常工作。
步骤 3 – 使用 Ansible 创建 AWS ec2 密钥
创建一个名为 ec2.key.yml
的剧本,如下所示:
- hosts: local
connection: local
gather_facts: no
tasks:
- name: Delete a EC2 key
ec2_key:
name: nixcraft-key
region: us-west-1
# absent means delete keypair
state: absent
按照如下方式运行:
$ ansible-playbook -i hosts ec2-key-delete.yml
关于作者
作者是 nixCraft 的创始人,是一个经验丰富的系统管理员,DevOps 工程师,同时是一个 Linux 操作系统/Unix shell 脚本培训师。通过 RSS/XML 提要或每周邮件简讯获得关于系统管理,Linux/Unix和开放源码主题的最新教程。
via: https://www.cyberciti.biz/faq/how-to-create-aws-ec2-key-using-ansible/
作者:Vivek Gite 译者:qianghaohao 校对:wxy
发表回复