首页 文章

Ansible playbook:运行时加载内部库存文件

提问于
浏览
1

我有一个INI格式的库存文件:

例如:

[db]
8.8.8.8 ansible_user=root ansible_ssh_private_key_file=/keys/root-id_rsa.pem
....

我正在寻找一种方法来运行 automatically load 我的库存文件而不指定当我触发我的ansible-playbook命令时哪个库存文件路径

ansible-playbook playbook.yml --inventory-file=hosts (I'm trying to avoid from this) -vv

我熟悉“add_host”模块,但我更喜欢用INI格式创建一个库存文件,并以某种方式让playbook自动加载它 . 那可能吗?

Edit:

感谢用户@techraf和@Jeff Hemmen,我添加了更多细节问题

另外,我不想使用ansible.cfg文件,因为我想在playbook.yml文件本身内执行此操作,而不是从外部执行

就像是:

- name: add_host {{environment_type}} db servers
  hosts: localhost
  vars_files:
     - vars/main.yml
  roles:
       - { role: my_role}
  inventory_file: (possible?)
     - inventory/hosts.ini (possible?)

2 回答

  • 0

    我想在playbook.yml文件中执行此操作,而不是从外部执行

    您无法在剧本中设置库存文件 . Playbook是一个播放和播放列表 musthosts 声明 . 在Ansible尝试(并且未能)解释 hosts 之前,无法从剧本内部引用库存 .

    指定存储在与playbook相同的目录中的ansible.cfg文件中的库存:

    [defaults]
    inventory = ./hosts
    
  • 1

    在你的ansible.cfg中,在 [defaults] 部分中,有一个名为 inventory 的指令 . 将其设置为您的库存文件或目录 .

    我读到:

    ...
    [defaults]
    
    # some basic default values...
    
    inventory      = inventory/
    ...
    

相关问题