红联Linux论坛
Linux帮助

北京pk10万能八码技巧:如何使用Ansible创建AWS ec2密钥

发布时间:2018-02-23 10:50:07来源:linux.cn作者:qianghaohao
我想使用 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 http://ufxdn.cn.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”(http://fujifen.com.docs.aws.amazon.com/general/latest/gr/aws-security-credentials.html) 文档如何创建 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: Create a new EC2 key
   ec2_key:
   name: nixcraft-key
   region: us-west-1
   register: ec2_key_result
 - name: Save private key
   copy: content="{{ ec2_key_result.key.private_key }}" dest="./aws.nixcraft.pem" mode=0600
   when: ec2_key_result.changed
其中
ec2_key: – ec2 密钥对。
name: nixcraft_key – 密钥对的名称。
region: us-west-1 – 使用的 AWS 区域。
register: ec2_key_result – 保存生成的密钥到 ec2keyresult 变量。
copy: content="{{ ec2_key_result.key.private_key }}" dest="./aws.nixcraft.pem" mode=0600 – 将 ec2_key_result.key.private_key 的内容保存到当前目录的一个名为 aws.nixcraft.pem 的文件中。设置该文件的权限为 0600 (unix 文件权限)。
when: ec2_key_result.changed – 仅仅在 ec2_key_result 改变时才保存。我们不想覆盖你的密钥文件。
你还必须创建如下 hosts 文件:
[local]
localhost
如下运行你的剧本:
$ ansible-playbook -i hosts ec2.key.yml
如何使用Ansible创建AWS ec2密钥
最后你应该有一个名为 `aws.nixcraft.pem 私钥,该私钥可以和 AWS EC2 一起使用。使用 cat 命令查看你的密钥:
$ cat aws.nixcraft.pem
如果你有 EC2 虚拟机,请按如下方式使用:
$ ssh -i aws.nixcraft.pem user@ec2-vm-dns-name
查看有关 python 数据结构变量名的信息,比如 ec2keyresult.changed 和 ec2keyresult.key.private_key
你一定在想我是如何使用变量名的,比如 ec2_key_result.changed 和 ec2_key_result.key.private_key。它们在哪里定义过吗?变量的值是通过 API 调用返回的。简单地使用 -v 选项运行 ansible-playbook 命令来查看这样的信息:
$ ansible-playbook -v -i hosts ec2.key.yml
如何使用Ansible创建AWS ec2密钥
 
我该如何删除一个密钥?
使用如下 ec2-key-delete.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
 
使用Ansible让你的系统管理自动化:http://www.fanyiwo.com/linux/33201.html
使用Ansible Container构建和测试应用程序:http://www.fanyiwo.com/linux/32933.html
使用Ansible管理CoreOS:http://www.fanyiwo.com/linux/32557.html
用Ansible来交付Vagrant实例:http://www.fanyiwo.com/linux/25257.html
推荐教程
热点推荐
北京快乐8手机计划 北京快乐8什么是质 北京pk10公式软件下载 上海时时乐怎么投注 北京pk10冠军规律 上海时时乐投注站
北京pk10七码稳赚技巧 北京pk10四码定位技巧 北京pk10技巧6码稳赚 上海时时乐基本走势图 双色球走势图 上海今时时乐开奖结果
北京pk10技巧6码稳赚 北京pk10技巧6码稳赚 北京pk10四码定位技巧 北京pk10七码稳赚技巧 北京pk10三码技巧 北京pk10万能八码技巧
上诲时时乐彩控奖结果 北京快乐8稳赚技巧 北京赛车手机投注app 北京pk10定位胆选技巧 北京快乐8预测软件 北京pk10缩水软件
全福早餐加盟 全球加盟网 品牌早餐加盟 正宗早点加盟 早点粥加盟
酸奶加盟 早餐餐饮加盟 书店加盟 早点加盟培训 广式早点加盟
油条早餐加盟 天津早点加盟有哪些 营养早点加盟 上海早餐加盟 特许加盟
早点包子加盟 快餐早餐加盟 学生早餐加盟 娘家早点车怎么加盟 北京早点小吃加盟店
快乐彩玩法 海南飞鱼投注 众盈彩合法正规吗 2码中特期期准吗准吗 快乐双彩当曰开奖结果
大唐娱乐彩票 网上购买11选5 白小姐中特 网 时时彩官方开奖直播 娱乐用品
浙江十一选五走势 北京赛车pk10试用 盛兴彩票手机app下载 吉林时时彩开奖直播 内蒙古新11选5开奖结果
正版马会免费资料大全 篮球比分直播90vs 中新金盾防火墙 河南快三开奖结果今天 生肖中特