首页 文章

在顶级playbook中选择group_var变量文件

提问于
浏览
1

我在 group_vars/all/vars_file.yml 中定义了所有变量,我的剧本如下:

---
# Top level play site.yml
- hosts: webclient

  roles:
    - common
    - nginx
    - nvm
    - deploy_web_client

- hosts: appserver
  roles:
    - common
    - gradle
    - tomcat
    - deploy_sb_war

现在我有3个环境dev / staging / production . 根据我用来更改group_vars下的vars_file.yml的环境,然后运行ansible-play .

有什么方法可以保存3个文件,如“group_vars / dev”,“group_vars / staging”,“group_vars / production”,并在我的主site.yml中指定它

我有3个库存文件,如下所示,根据ansible-play期间的环境,我指定库存文件名

[webclient]
10.20.30.40

[appserver]
10.20.30.41

1 回答

  • 4

    不使用保存在单个目录中的库存文件,而是在单独的目录中使用库存文件,并将 group_vars 放在每个目录中 .

    .
    ├── dev
    │   ├── group_vars
    │   │   └── all
    │   │       └── vars_file.yml
    │   └── inventory
    ├── production
    │   ├── group_vars
    │   │   └── all
    │   │       └── vars_file.yml
    │   └── inventory
    └── staging
        ├── group_vars
        │   └── all
        │       └── vars_file.yml
        └── inventory
    

    然后指向 ansible-playbook 调用中的目录:

    ansible-playbook -i dev <the_rest>
    

相关问题