如何在Ansible剧本中覆盖某些特定的变量值

问题描述 投票:-1回答:1

我有一些战争文件,这些文件是从nexus下载的,并在我的远程主机上创建相应的应用程序文件夹并复制文件。现在有2个文件的名称与war文件不同,但需要创建一个具有不同名称的目录。我现在正在做的是-

- name: Ensuring the web deployment folder is created on tomcat nodes for each web application
   file:
     path: "{{tomcat_server_release_location}}/Release{{my_release_version}}/{{item}}"
     state: directory
     mode: 0777
   with_items:
    - "{{ apps }}"

- name: Copying the release from Admin server to tomcat nodes
   copy: src={{admin_server_release_location}}/{{my_release_version}}/{{item}}-{{my_release_version}}.war dest={{tomcat_server_release_location}}/Release{{my_release_version}}/{{item}}
   with_items:
    - "{{ apps }}"

apps变量的定义如下-webapps:['test1','test2','test3','test4']。现在,test2在其名称为test2-web.war的关系上有一个不同的名称,但是在远程节点上,我必须创建一个名为test2的文件夹,并在其中复制war文件。

是否有一种方法可以在Playbook运行时通过使用某些条件或其他任何方法来覆盖某些变量

ansible ansible-inventory
1个回答
0
投票

如果要在运行时覆盖,请使用额外的变量。来自文档--extra-vars“ version = 1.23.45”

如果知道特定主机应始终被覆盖,请不要使用条件。我认为将其作为主机变量是最好的。

主持人:myhost:应用:-测试1-trst2

请参阅https://docs.ansible.com/ansible/latest/user_guide/playbooks_variables.html#variable-precedence-where-should-i-put-a-variable以了解您可以放置​​变量的所有不同位置以及如何确定将要使用的位置

© www.soinside.com 2019 - 2024. All rights reserved.