Ansible 如何注释可解析变量
我想在同一台主机上安装2个Kafka群集。我在host_vars/HOSTNAME文件下定义了变量,如下所示: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: /
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你试过了吗?我发布了这个问题,因为预期结果和实际结果不匹配。我会再试一次,看看为什么它对我不起作用。