当前位置: 首页 > 知识库问答 >
问题:

Ansible add_host未添加到主机文件

凤经武
2023-03-14

Ansible版本:1.9.2

---
- name: create EC2 instance
  ec2:
    key_name: "{{ keypair }}"
    group_id: "{{ security_group }}"
    instance_type: "{{ instance_type }}"
    image: "{{ image }}"
    region: "{{ region }}"
    vpc_subnet_id: "{{ vpc_subnet_id }}"
    assign_public_ip: yes
    wait: True
    instance_tags:
      Name: "{{ instance_tag }}"
      Environment: "{{ instance_tag2 }}"
    exact_count: 1
    count_tag:
      Name: "{{ instance_tag }}"
      Environment: "{{ instance_tag2 }}"
    monitoring: yes
  register: ec2
- name: add ec2 instance to hosts
  add_host: name={{ item.private_ip }} groups=group_name
  with_items: ec2.instances
- name: wait for SSH
  wait_for: host={{ item.private_ip }} port=22 delay=60 timeout=320 state=started
  with_items: ec2.instances
TASK: [ec2_launch | add ec2 instance to hosts] ********************************
creating host via 'add_host': hostname=10.50.101.93
added host to group via add_host module: group_name

IP是正确的,组名是正确的,但当我检查ansible主机文件时,它没有被修改。我确保在主机文件中包含[group_name]。在运行过程中没有错误,也不确定为什么没有将其添加到文件中。

这个页面上有一个'add_host'的例子:http://docs.ansible.com/ec2_module.html而不是name和groups,而是使用hostname、groupname(我相信这是旧的)。我也试过那些。不知道我错过了什么。

共有1个答案

刘俊语
2023-03-14

add_host任务不将其添加到主机文件中,而是将其添加到内存中的主机列表中。

添加到hosts文件并不是在所有情况下都有效--例如,AWS用户经常使用./ec2.py脚本,这是一个二进制可执行文件,可以替换基于文本的hosts文件。

 类似资料:
  • 我一直试图使用Ansible Playbook将主机名添加到我的主机文件中。我的Ansible播放如下所示,我的主机文件位于: Playbook成功执行,但新主机名没有添加到Ansible hosts文件中。有人能帮我吗?

  • 如果您还没有一台装有 Linux 的主机,我们邀请您体验「免费胶囊主机」。 要启动一台胶囊主机请参考下面的步骤: 在控制台点击「我的集群」 选择一个目标集群,或者创建一个新的集群 点击添加主机 在接入自有主机界面,将鼠标移到「先试试胶囊主机」,点击「试用」 「胶囊主机」自带 Docker 运行环境,并自动接入 DaoCloud 容器管理平台。每个「胶囊主机」可以免费体验 120 分钟,到期后会自动

  • 在用JHipster生成的REST API中,我想抛出一些404异常。通常用 这实际上会导致对xhr请求的404响应。问题是,在前面,JHipster用 当404是实际响应时,这样的结果为空,这使得解析失败。 我试过这个:Spring-MVC控制器中的触发器404?但我无法设置响应的参数。

  • 问题内容: 我对mysql有一个奇怪的问题。 我正在尝试更改表的列,该列是主键,并且对它定义了auto_increment约束。这也是其他多个表的外键参考。我需要在父级和所有子级中都更改此列的长度。 这将删除父表上的自动增量。添加约束的最佳方法是什么? 以下似乎失败了。 有没有更好的方法来实现这一目标? 编辑:显示创建为(更改后): 变更之前 谢谢! 问题答案: 您无需在MODIFY语句中指定:

  • 我正在使用docker compose运行一个测试环境,该环境由大约5个不同的容器组成。容器间的链接和共享卷(来自的卷)工作得非常好。我还向主机暴露了一些端口,这很好地工作。 我缺少的是一种将我的一些真实服务器链接到这个环境中的方法,而不需要硬编码ip地址。使用,您可以使用在您的文件中添加另一行。是否有任何方法可以使用docker-comush做类似的事情?

  • 我从某人那里下载了一个新的laravel项目进行测试。 使用php artisan service设置和运行后,locahost(http://localhost:8000/)继续缓慢加载,然后显示消息404未找到。 我尝试使用命令行php artisan serve——port=1010并运行http://localhost:1010/ 在broswer上,但它不起作用。 在broswer上运行