gpt4 book ai didi

amazon-web-services - 安塞 bool AWS : Unable to connect to EC2 instance

转载 作者:行者123 更新时间:2023-12-03 01:19:30 28 4
gpt4 key购买 nike

我想要实现的目标

我想使用一个 Ansible playbook 创建一个安装了 LAMP 堆栈的 EC2 实例。

问题

实例创建工作正常,我可以在 EC2 控制台中对其进行修改,但在尝试访问实例(例如安装 apache 或创建 key )时会出现问题。

这是错误:

fatal: [35.154.26.86]: UNREACHABLE! => { "changed": false, "msg": "[Errno None] Unable to connect to port 22 on or 35.154.26.86", "unreachable": true }

Error Screenshot

代码

这是我的剧本:

---
- name: Power up an ec2 with LAMP stack installed
hosts: localhost
become: true
become_user: root
gather_facts: False
vars:
keypair: myKeyPair
security_group: launch-wizard-1
instance_type: t2.micro
image: ami-47205e28
region: x-x-x
tasks:
- name: Adding Python-pip
apt: name=python-pip state=latest

- name: Install Boto Library
pip: name=boto

- name: Launch instance (Amazon Linux)
ec2:
key_name: "{{ keypair }}"
group: "{{ security_group }}"
instance_type: "{{ instance_type }}"
image: "{{ image }}"
wait: true
region: "{{ region }}"
aws_access_key: "xxxxxxxxxxxxxxxxxxx"
aws_secret_key: "Xxxxxxxxxxxxxxxxxxx"
register: ec2

- name: Print all ec2 variables
debug: var=ec2

- name: Add all instance public IPs to host group
add_host: hostname={{ item.public_ip }} groups=ec2hosts
with_items: "{{ ec2.instances }}"


- hosts: ec2hosts
remote_user: ec2-user
become: true
gather_facts: false
tasks:
#I need help here, don't know what to do.
- name: Create an EC2 key
ec2_key:
name: "privateKey"
region: "x-x-x"
register: ec2_key

- name: Save private key
copy: content="{{ ec2_key.private_key }}" dest="./privateKey.pem" mode=0600
when: ec2_key.changed

# The Rest is installing LAMP

信息:

1-我的主机文件是默认的。

2-我使用此命令来运行剧本:

sudo ansible-playbook lamp.yml -vvv -c paramiko

3- launch-wizard-1 有 SSH。

4- myKeyPair 是从我的设备导入到控制台的公钥(不知道这是否可以)

5-我是个大新手

最佳答案

Ansible 需要在虚拟机上安装 Python 才能工作。

这是您所需的代码:

  - name: upload an ssh keypair to ec2
hosts: localhost
connection: local
gather_facts: False
vars:
keypair_name: Key_name
key_material: "{{ lookup('file', 'keyfile') }}"
region: "{{ region }}"


tasks:
- name: ssh keypair for ec2
ec2_key:
aws_access_key: "xxxxxxxxxxxxxxxxxxx"
aws_secret_key: "Xxxxxxxxxxxxxxxxxxx"
region: "{{ region }}"
name: "{{ keypair_name }}"
key_material: "{{ key_material }}"
state: present


- name: Power up an ec2 with LAMP stack installed
hosts: localhost
become: true
become_user: root
gather_facts: False
vars:
keypair: myKeyPair
security_group: launch-wizard-1
instance_type: t2.micro
image: ami-47205e28
region: x-x-x
my_user_data: | # install Python: Ansible needs Python pre-installed on the instance to work!
#!/bin/bash
sudo apt-get install python -y

tasks:
- name: Adding Python-pip
apt: name=python-pip state=latest

- name: Install Boto Library
pip: name=boto

- name: Launch instance (Amazon Linux)
ec2:
key_name: "{{ keypair }}"
group: "{{ security_group }}"
instance_type: "{{ instance_type }}"
image: "{{ image }}"
wait: true
wait_timeout: 300
user_data: "{{my_user_data}}"
region: "{{ region }}"
aws_access_key: "xxxxxxxxxxxxxxxxxxx"
aws_secret_key: "Xxxxxxxxxxxxxxxxxxx"
register: ec2

- name: Add all instance public IPs to host group
add_host: hostname={{ item.public_ip }} groups=ec2hosts
with_items: "{{ ec2.instances }}"

关于amazon-web-services - 安塞 bool AWS : Unable to connect to EC2 instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45363067/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com