ansible - 在主机上执行任务的正确方法

标签 ansible devops administration

我有一个包含以下主机的 list ,如下所示(第一个集群)

[elasticsearch-cluster-india]
elasticsearch-01-mumbai ansible_host=10.0.87.19
elasticsearch-02-mumbai ansible_host=10.0.87.20
elasticsearch-03-mumbai ansible_host=10.0.87.21

我有下面不同的集群

[elasticsearch-cluster-kyrgyzstan]
elasticsearch-01-bishkek ansible_host=10.0.92.2
elasticsearch-02-bishkek ansible_host=10.0.92.3
elasticsearch-03-bishkek ansible_host=10.0.92.4

我想运行以下任务

- name: Set up snapshot cron job
  cron:
    name: "Elasticsearch backup"
    minute: 59
    hour: 23
    job: "{{ es_snapshot_snapshot_script_path }}/snapshot_es.sh"

那么如何仅在我组中的第一台主机上执行此任务? 我只想在主机 elasticsearch-01-bishkekelasticsearch-01-mumbai

上执行此任务

最佳答案

向主机添加变量:

[elasticsearch-cluster-india]
elasticsearch-01-mumbai ansible_host=10.0.87.19 do_backup=yes
elasticsearch-02-mumbai ansible_host=10.0.87.20
elasticsearch-03-mumbai ansible_host=10.0.87.21

然后检查它:

- name: Set up snapshot cron job
  cron:
    name: "Elasticsearch backup"
    minute: 59
    hour: 23
    job: "{{ es_snapshot_snapshot_script_path }}/snapshot_es.sh"
  when: do_backup|default(false)|bool

关于ansible - 在主机上执行任务的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65987773/

相关文章:

ansible lineinfile 如何添加具有多个目标的多行?

Hadoop 管理

SSL 多级子域通配符

ansible - 如何根据条件打破 with_items 循环

docker - 如何使用 ansible 运行 docker-compose 命令?

mercurial - Ansible Mercurial 克隆挂起

java - 在 IBM RAD WebSphere 中,哪个文件描述了管理控制的 WebSphere 变量?

continuous-integration - 如何在 30 天后删除 GitLab-CI 作业

Azure函数应用部署错误 "Encountered an error (ServiceUnavailable) from host runtime. (CODE: 400)"

即使节点处于就绪状态,Kubernetes pod 也不会启动