日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
如何使用Ansible創(chuàng)建AWSec2密鑰

我想使用 Ansible 工具創(chuàng)建 Amazon EC2 密鑰對(duì)。不想使用 AWS CLI 來(lái)創(chuàng)建。可以使用 Ansible 來(lái)創(chuàng)建 AWS ec2 密鑰嗎?

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到南陽(yáng)網(wǎng)站設(shè)計(jì)與南陽(yáng)網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:做網(wǎng)站、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊(cè)、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋南陽(yáng)地區(qū)。

你需要使用 Ansible 的 ec2_key 模塊。這個(gè)模塊依賴于 python-boto 2.5 版本或者更高版本。 boto 是亞馬遜 Web 服務(wù)的一個(gè) Python API。你可以將 boto 用于 Amazon S3、Amazon EC2 等其他服務(wù)。簡(jiǎn)而言之,你需要安裝 Ansible 和 boto 模塊。我們一起來(lái)看下如何安裝 boto 并結(jié)合 Ansible 使用。

第一步 - 在 Ubuntu 上安裝最新版本的 Ansible

你必須給你的系統(tǒng)配置 PPA 來(lái)安裝最新版的 Ansible。為了管理你從各種 PPA(Personal Package Archives)安裝軟件的倉(cāng)庫(kù),你可以上傳 Ubuntu 源碼包并編譯,然后通過(guò) Launchpad 以 apt 倉(cāng)庫(kù)的形式發(fā)布。鍵入如下命令 apt-get 命令或者 apt 命令:

$ sudo apt update 
$ sudo apt upgrade 
$ sudo apt install software-properties-common

接下來(lái)給你的系統(tǒng)的軟件源中添加 ppa:ansible/ansible

$ sudo apt-add-repository ppa:ansible/ansible

更新你的倉(cāng)庫(kù)并安裝 Ansible:

$ sudo apt update 
$ sudo apt install ansible

安裝 boto:

$ pip3 install boto3

關(guān)于在CentOS/RHEL 7.x上安裝 Ansible 的注意事項(xiàng)

你需要在 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” 文檔如何創(chuàng)建 API key。用 mkdir 命令創(chuàng)建一個(gè)名為 ~/.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

還需要配置默認(rèn) AWS 區(qū)域:

$ vi ~/.aws/config

輸出樣例如下:

[default]
region = us-west-1

通過(guò)創(chuàng)建一個(gè)簡(jiǎn)單的名為 test-boto.py 的 Python 程序來(lái)測(cè)試你的 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)

按下面方式來(lái)運(yùn)行該程序:

$ python3 test-boto.py

輸出樣例:

nixcraft-images
nixcraft-backups-cbz
nixcraft-backups-forum

上面輸出可以確定 Python-boto 可以使用 AWS API 正常工作。

步驟 3 - 使用 Ansible 創(chuàng)建 AWS ec2 密鑰

創(chuàng)建一個(gè)名為 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 密鑰對(duì)。
  • name: nixcraft_key – 密鑰對(duì)的名稱。
  • region: us-west-1 – 使用的 AWS 區(qū)域。
  • 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 的內(nèi)容保存到當(dāng)前目錄的一個(gè)名為 aws.nixcraft.pem 的文件中。設(shè)置該文件的權(quán)限為 0600 (unix 文件權(quán)限)。
  • when: ec2_key_result.changed – 僅僅在 ec2_key_result 改變時(shí)才保存。我們不想覆蓋你的密鑰文件。

你還必須創(chuàng)建如下 hosts 文件:

[local]
localhost

如下運(yùn)行你的劇本:

$ ansible-playbook -i hosts ec2.key.yml

最后你應(yīng)該有一個(gè)名為 `aws.nixcraft.pem 私鑰,該私鑰可以和 AWS EC2 一起使用。使用 cat 命令查看你的密鑰:

$ cat aws.nixcraft.pem

如果你有 EC2 虛擬機(jī),請(qǐng)按如下方式使用:

$ ssh -i aws.nixcraft.pem user@ec2-vm-dns-name

查看有關(guān) python 數(shù)據(jù)結(jié)構(gòu)變量名的信息,比如 ec2keyresult.changed 和 ec2keyresult.key.private_key

你一定在想我是如何使用變量名的,比如 ec2_key_result.changedec2_key_result.key.private_key。它們?cè)谀睦锒x過(guò)嗎?變量的值是通過(guò) API 調(diào)用返回的。簡(jiǎn)單地使用 -v 選項(xiàng)運(yùn)行 ansible-playbook 命令來(lái)查看這樣的信息:

$ ansible-playbook -v -i hosts ec2.key.yml

我該如何刪除一個(gè)密鑰?

使用如下 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

按照如下方式運(yùn)行:

$ ansible-playbook -i hosts ec2-key-delete.yml

關(guān)于作者



文章題目:如何使用Ansible創(chuàng)建AWSec2密鑰
URL分享:http://www.dlmjj.cn/article/djoiede.html