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

向Ansible主机文件添加主机

张永嘉
2023-03-14

我一直试图使用Ansible Playbook将主机名添加到我的主机文件中。我的Ansible播放如下所示,我的主机文件位于/etc/Ansible/hosts:

- name: adding host playbook
  hosts: localhost
  connection: local
  tasks:
  - name: add host to ansible host file
    add_host:
      name: myvm.cloud.azure.com
      groups: mymasters

Playbook成功执行,但新主机名没有添加到Ansible hosts文件中。有人能帮我吗?

共有1个答案

宋智明
2023-03-14

add_host模块不会将主机添加到清单文件中,而是创建主机并将其添加到仅存在于内存中的清单中。您可以在后续播放中使用此清单,但不会将其保存到文件中。

如果您真的想用Ansible将主机添加到目录文件中,则需要使用常规的文件编辑模块,如LineInfileBlockInfile

您还可以欺骗inifile模块来处理Ansible库存,但这确实是一个漏洞,因为库存文件实际上并不具有正确的INI-file结构:

- ini_file:
    dest: /etc/ansible/hosts
    section: mymasters
    option: myvm ansible_host
    value: myvm.cloud.azure.com
    no_extra_spaces: yes
 类似资料:
  • Ansible版本:1.9.2 IP是正确的,组名是正确的,但当我检查ansible主机文件时,它没有被修改。我确保在主机文件中包含[group_name]。在运行过程中没有错误,也不确定为什么没有将其添加到文件中。 这个页面上有一个'add_host'的例子:http://docs.ansible.com/ec2_module.html而不是name和groups,而是使用hostname、gr

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

  • 什么是 Host Inventory ( 主机目录 、主机清单)? Host Inventory 是配置文件,用来告诉Ansible需要管理哪些主机。并且把这些主机根据按需分类。 可以根据用途分类:数据库节点,服务节点等;根据地点分类:中部,西部机房。 Host Inventory 配置文件: 默认的文件是: /etc/ansible/hosts 可以修改为其它的文件,下一章Ansible进阶中介

  • 只有脚本才可以重用,避免总敲重复的代码。Ansible脚本的名字叫Playbook,使用的是YAML的格式,文件以yml结尾。 注解:YAML和JSON类似,是一种表示数据的格式。 执行脚本playbook的方法 $ansible-palybook deploy.yml playbook的例子 deploy.yml的功能为web主机部署apache, 其中包含以下部署步骤: 安装apache包;

  • Ansible提供了一个命令行工具,在官方文档中起给命令行起了一个名字叫Ad-Hoc Commands。 ansible命令的格式是: ansible <host-pattern> [options] ansible命令功能有哪些 先不用深纠命令的语法,讲完module那节,就可以理解语法。先从感官上,通过下面的命令认识下ansible的命令行都可以做什么。 检查ansible安装环境 检查所有的

  • 但是通过使用,我无法从目录中挑选特定的主机。但是我可以使用一些语法,如,但是它查找DNS条目并相应地执行,但是不会检查目录文件。 另一种方法是为每个主机创建单独的目录文件,并由开发人员根据请求的主机调用它们,我不知道这是多少推荐的方法。 最后一个方法是AFAIK通过Python使用,在主机名中使用模式并调用Python程序。 除了这些,您还知道在执行剧本时从目录中选择特定主机/主机组的其他方法吗?