每个节点上的数字递增,不包括一个

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

我正在尝试在多个节点上的tomcat

server.xml
中自动命名节点号。 我有下面的剧本:

vars:
  - node_number: "{{ ansible_host_all.index(inventory_hostname) + 1 }}"

- name: Nommage des nodes
  block:
    - name: Change interpreter
      set_fact:
        ansible_python_interpreter: "/usr/bin/python3"

- name: Nommage des nodes
      become: yes
      become_method: sudo
      become_user: "{{env}}adm"
      community.general.xml:
        path: /data/{{env}}/web/tomcat/conf/server.xml
        xpath: /Server/Service/Engine
        attribute: jvmroute
        value: "node0{{node_number}}"
        backup: true
  when:
    - ansible_facts['distribution'] == 'Rocky'

问题是我有四个节点(BDD、APP1、APP2、APP3)。 在这个剧本中,节点号以 BDD=node01 开头,然后 APP1=node02 ...等等

我想要做的是将 BDD 服务器从该任务中排除,以从 APP1=node02 开始节点号,然后 APP2=node02 ...等

你能帮我吗?

ansible numbers increment
1个回答
0
投票

这里那里形成您当前的描述,至少对我来说,完全不清楚如何构建清单如何组织主机和组变量,以及服务器和节点名称。因此,建议再次查看链接的文档并/或提供更多信息。


对于库存文件

example.com
,内容为

[stack:children]
db
app

[db]
node01.example.com

[app]
node0[2:4].example.com

命令

ansible-inventory --inventory example.com --graph

将产生

的输出
@all:
  |--@stack:
  |  |--@app:
  |  |  |--node02.example.com
  |  |  |--node03.example.com
  |  |  |--node04.example.com
  |  |--@db:
  |  |  |--node01.example.com
  |--@ungrouped:

和一个命令

ansible-inventory app --inventory example.com --graph

进入

@app:
  |--node02.example.com
  |--node03.example.com
  |--node04.example.com

因此,需要一个最小示例剧本

---
- hosts: app
  become: false
  gather_facts: false

  tasks:

  - debug:
      msg: "{{ inventory_hostname_short }}"

通过

调用
ansible-playbook --inventory example.com main.yml

将产生

的输出
TASK [debug] **************
ok: [node02.example.com] =>
  msg: node02
ok: [node03.example.com] =>
  msg: node03
ok: [node04.example.com] =>
  msg: node04

有关更多文档,请参阅模式:定位主机和组特殊变量

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