Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ansible/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ansible 如何注释可解析变量_Ansible - Fatal编程技术网

Ansible 如何注释可解析变量

Ansible 如何注释可解析变量,ansible,Ansible,我想在同一台主机上安装2个Kafka群集。我在host_vars/HOSTNAME文件下定义了变量,如下所示: Kafka_cluster_path: /home/cluster1 # Kafka_cluster_path: /home/cluster2 `{{ Kafka_cluster_path }}/kafka/start.sh` 我有一个使用群集id的模板,如下所示: Kafka_cluster_path: /home/cluster1 # Kafka_cluster_path: /

我想在同一台主机上安装2个Kafka群集。我在host_vars/HOSTNAME文件下定义了变量,如下所示:

Kafka_cluster_path: /home/cluster1
# Kafka_cluster_path: /home/cluster2
`{{ Kafka_cluster_path }}/kafka/start.sh`
我有一个使用群集id的模板,如下所示:

Kafka_cluster_path: /home/cluster1
# Kafka_cluster_path: /home/cluster2
`{{ Kafka_cluster_path }}/kafka/start.sh`
当我运行Ansible角色时,它用Kafka\u cluster\u path=/home/cluster2填充模板

有没有办法在Ansible中真正注释变量?

顺便说一句,当我删除注释行时:

Kafka_cluster_path: /home/cluster1
运行Ansible角色,然后kafka_cluster_path获得正确的值(/home/cluster1)。

是注释yaml文件中变量的实际方式,我看不出您在问题中描述的有任何问题

从上面的评论来看,由于您的不完全相信,以下是根据您的描述创建的完整MCVE,以证明它完全按照预期工作:

host\u vars/localhost中

---
Kafka_cluster_path: /home/cluster1
# Kafka_cluster_path: /home/cluster2
play.yml中

---
- name: "Prove that ansible obeys yaml spec and honors comments as expected"
  hosts: localhost
  gather_facts: false

  tasks:
    - debug:
        msg: "{{ Kafka_cluster_path }}/kafka/start.sh"

请注意,我在ValueLeV中安装了你正在使用的相同的ANDILE版本(顺便说一下,这是相当旧的,你应该考虑升级)来排除任何遗留的疑虑。

(test) $ ansible-playbook --version
ansible-playbook 2.6.17
  config file = None
  configured module search path = ['/home/user/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /tmp/test/test/lib/python3.6/site-packages/ansible
  executable location = /tmp/test/test/bin/ansible-playbook
  python version = 3.6.9 (default, Nov  7 2019, 10:44:02) [GCC 8.3.0]

(test) $ ansible-playbook play.yml 

PLAY [Prove that ansible obeys yaml spec and honors comments as expected] **************************************************************

TASK [debug] ***************************************************************************************************************************
ok: [localhost] => {
    "msg": "/home/cluster1/kafka/start.sh"
}

PLAY RECAP *****************************************************************************************************************************
localhost                  : ok=1    changed=0    unreachable=0    failed=0

在再次运行之前保存您的文件,或者查看再次定义此变量的位置(库存,其他包含的文件)。从上面可以看出,您的变量被注释掉了。我尝试过,我确信您不能注释Ansible 2.6.17中主机文件中的变量Ansible文件是用yaml编写的。看说明书:@Zeitounator你试过了吗?我发布了这个问题,因为预期结果和实际结果不匹配。我会再试一次,看看为什么它对我不起作用。