我是Ansible的新手,我写了一本Ansible的剧本,它将启动EC2实例。我想要保存创建的实例的公网IP或DNS名称,以便我可以对其进行其他操作。
tasks:
- name: Create a security group
local_action:
module: ec2_group
name: "{{ security_group }}"
description: Security Group for webserver Servers
region: "{{ region }}"
我正在创建一个Ansible Playbook,我已经创建了一个新的AWS EC2实例。我现在想要将SSH放到这个实例中,并在该实例的shell中运行一些命令。我该怎么做呢?是否有一种通过ansible生成键盘的方法,还是最好使用现有的键盘?
我在网上查看了Ansible ec2的在线资源--在ec2 ()中创建、终止、启动或停止一个实例,以及在线博客。虽然,我还没有弄清楚如何在实例中使用SSH,也没有在网上看到一个示例。
使用:
- name: Wait for SSH to come up
wait_for:
host: "{{ item.publi
这是我的ec2.tf
resource "aws_instance" "ec2_instance" {
# resource gets created if private_ip variable is not passed as a input.
count = var.instance_count
//"${length(compact(split(",", var.instance_count))) > 0 ? "${var.instance_count}"
我正在使用AWS CLI在我的行动手册中创建一个动态EC2清单列表。我使用from_json jinja2筛选器来格式化标准输出。然后,我需要获取所有私有ip地址来创建主机列表。但是,我注意到,当我尝试创建主机组时,我的代码没有返回任何数据,因此给出了以下错误:
{ "msg": "the field 'args' has an invalid value, which appears to include a variable that is undefined. The error was: 'ansible.vars.unsafe_
我创建了用于创建AWS、安全组和EC2的模块。实现了基于vpc和安全组模块的EC2模块。但我明白这个错误:
no matching EC2 Security Group found
on .terraform/modules/main_ec2/modules/EC2Module/main.tf line 26, in data "aws_security_group" "security_group_id":
26: data "aws_security_group" "security_group_id" {
EC2模块
调试时如何只打印group_id?ec2_info.instances[0].security_groups有多个组ID,需要所有没有group_name的group_id。
- name: Gather information about a particular instance using ID
amazon.aws.ec2_instance_info:
aws_access_key: "{{ aws_access_key }}"
aws_secret_key: "{{ aws_secret_key }}"