community.general.nomad_job 模块 – 启动 Nomad 作业

注意

此模块是 community.general 集合 (版本 10.1.0) 的一部分。

如果您使用的是 ansible 软件包,则可能已安装此集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用: ansible-galaxy collection install community.general。您需要其他要求才能使用此模块,有关详细信息,请参阅 需求

要在 playbook 中使用它,请指定: community.general.nomad_job

community.general 1.3.0 中的新增功能

摘要

  • 启动 Nomad 作业。

  • 停止 Nomad 作业。

  • 强制启动 Nomad 作业

需求

执行此模块的主机需要以下需求。

  • python-nomad

参数

参数

注释

client_cert

path

TLS/SSL 证书的路径。

client_key

path

TLS/SSL 证书私钥的路径。

content

字符串

Nomad 作业的内容。

必须指定此参数或 name 参数。

content_format

字符串

Nomad 作业内容的类型。

选项

  • "hcl" ← (默认)

  • "json"

force_start

布尔值

强制作业启动。

选项

  • false ← (默认)

  • true

host

字符串 / 必需

Nomad 服务器的完全限定域名。

name

字符串

用于删除、停止和启动作业(无需源)的作业名称。

用于删除、停止和启动作业(无需源)的作业名称。

必须指定此参数或 content 参数。

namespace

字符串

Nomad 的命名空间。

port

整数

community.general 8.0.0 中新增

Nomad 服务器的端口。

默认值: 4646

state

字符串 / 必需

部署或删除作业。

选项

  • "present"

  • "absent"

timeout

整数

对 Nomad 的请求的超时时间(以秒为单位)。

默认值: 5

token

字符串

用于身份验证的 ACL 令牌。

use_ssl

布尔值

使用 TLS/SSL 连接。

选项

  • false

  • true ← (默认)

validate_certs

布尔值

启用 TLS/SSL 证书验证。

选项

  • false

  • true ← (默认)

属性

属性

支持

描述

check_mode

支持:完全支持

可以在 check_mode 下运行,并在不修改目标的情况下返回更改状态预测。

diff_mode

支持:不支持

在差异模式下,将返回有关已更改内容(或可能需要在 check_mode 中更改的内容)的详细信息。

另请参阅

另请参阅

Nomad 作业文档

Nomad API 作业的完整文档。

示例

- name: Create job
  community.general.nomad_job:
    host: localhost
    state: present
    content: "{{ lookup('ansible.builtin.file', 'job.hcl') }}"
    timeout: 120

- name: Connect with port to create job
  community.general.nomad_job:
    host: localhost
    port: 4645
    state: present
    content: "{{ lookup('ansible.builtin.file', 'job.hcl') }}"
    timeout: 120

- name: Stop job
  community.general.nomad_job:
    host: localhost
    state: absent
    name: api

- name: Force job to start
  community.general.nomad_job:
    host: localhost
    state: present
    name: api
    timeout: 120
    force_start: true

作者

  • FERREIRA Christophe (@chris93111)