如果有另一个块,则替换 Ansible 块文件,而不是插入新的块



我尝试在同一文件中插入 2 个 ansible 块,但 Ansible 将第一个块替换为第二个块。

如果我插入接下来的 2 个块:

- name: Setup java environment
  blockinfile:
    dest: /home/{{ user }}/.bashrc
    block: |
      #Java path# 
      JAVA_HOME={{ java_home }}/
- name: Setup hadoop environment
  blockinfile:
    dest: /home/{{ user }}/.bashrc
    block: |
      #Hadooppath# 
      HADOOP_HOME={{ hadoop_home }}/

文件中只有第二个块,因为它替换第一个块。

要在同一文件中插入 2 个带有 Ansible 的块,并且不要用第二个替换第一个块:

更改 Ansible 块文件标记:

blockinfile_task_1:
marker: "# {mark} ANSIBLE MANAGED BLOCK insertion 1"
blockinfile_task_2:
marker: "# {mark} ANSIBLE MANAGED BLOCK insertion 2"

对于前面的示例,剧本将是:

- name: Setup java environment
  blockinfile:
    dest: /home/{{ user }}/.bashrc
    marker: "# {mark} ANSIBLE MANAGED BLOCK Java"
    block: |
      #Java path# 
      JAVA_HOME={{ java_home }}/
- name: Setup hadoop environment
  blockinfile:
    dest: /home/{{ user }}/.bashrc
    marker: "# {mark} ANSIBLE MANAGED BLOCK Hadoop"
    block: |
      #Hadooppath# 
      HADOOP_HOME={{ hadoop_home }}/

最新更新