community.general.sorcery 模块 – Source Mage GNU/Linux 的包管理器

注意

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

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

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

要在剧本中使用它,请指定:community.general.sorcery

概要

  • 使用 *sorcery* 工具链管理 Source Mage GNU/Linux 上的“法术”

需求

以下需求是在执行此模块的主机上所需的。

  • bash

参数

参数

注释

cache_valid_time

整数

更新时使魔典集合失效的时间(秒)。

对 SCM 和 rsync 魔典尤其有用。

仅与 update_cache 配合使用才有意义。

默认值: 0

depends

字符串

构建法术(或确保其已构建)的_可选_依赖项的逗号分隔列表;在依赖项前使用 +/- 来启用/禁用它(尽管 + 是可选的)。

如果 name 参数等于 * 或包含多个法术,则忽略此选项。

提供者必须以 Sorcery 识别的形式提供,例如 ‘openssl(SSL)’。

name

别名:spell, grimoire

列表 / 元素=字符串

法术或魔典的名称。

可以给出多个名称,用逗号分隔。

与状态 latestrebuild 结合使用时,特殊值 * 将分别更新或重建整个系统

别名 grimoire 添加于 community.general 7.3.0。

repository

字符串

添加于 community.general 7.3.0

仓库位置。

如果指定,name 代表魔典而不是法术。

特殊值 * 将从官方位置拉取魔典。

只能与 * 结合使用 name 中的单个项目。

state=absent 必须与特殊值 * 一起使用。

state

字符串

是否施法、驱散或重建包。

状态 cast 等效于 present,而不是 latest

状态 rebuild 表示施放所有指定的法术,而不仅仅是之前存在的法术。

选择

  • "present" ← (默认)

  • "latest"

  • "absent"

  • "cast"

  • "dispelled"

  • "rebuild"

update

布尔值

是否在第一步更新 sorcery 脚本。

选择

  • false ← (默认)

  • true

update_cache

别名:update_codex

布尔值

是否在施法之前更新魔典集合。

选择

  • false ← (默认)

  • true

属性

属性

支持

描述

check_mode

支持:完全支持

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

diff_mode

支持:不支持

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

备注

注意

  • 当选择所有三个组件时,更新按顺序进行 – Sorcery -> 魔典 -> 法术;您无法覆盖它。

  • 自 community.general 7.3.0 起支持魔典处理。

示例

- name: Make sure spell foo is installed
  community.general.sorcery:
    spell: foo
    state: present

- name: Make sure spells foo, bar and baz are removed
  community.general.sorcery:
    spell: foo,bar,baz
    state: absent

- name: Make sure spell foo with dependencies bar and baz is installed
  community.general.sorcery:
    spell: foo
    depends: bar,baz
    state: present

- name: Make sure spell foo with bar and without baz dependencies is installed
  community.general.sorcery:
    spell: foo
    depends: +bar,-baz
    state: present

- name: Make sure spell foo with libressl (providing SSL) dependency is installed
  community.general.sorcery:
    spell: foo
    depends: libressl(SSL)
    state: present

- name: Make sure spells with/without required dependencies (if any) are installed
  community.general.sorcery:
    name: "{{ item.spell }}"
    depends: "{{ item.depends | default(None) }}"
    state: present
  loop:
    - { spell: 'vifm', depends: '+file,-gtk+2' }
    - { spell: 'fwknop', depends: 'gpgme' }
    - { spell: 'pv,tnftp,tor' }

- name: Install the latest version of spell foo using regular glossary
  community.general.sorcery:
    name: foo
    state: latest

- name: Rebuild spell foo
  community.general.sorcery:
    spell: foo
    state: rebuild

- name: Rebuild the whole system, but update Sorcery and Codex first
  community.general.sorcery:
    spell: '*'
    state: rebuild
    update: true
    update_cache: true

- name: Refresh the grimoire collection if it is 1 day old using native sorcerous alias
  community.general.sorcery:
    update_codex: true
    cache_valid_time: 86400

- name: Make sure stable grimoire is present
  community.general.sorcery:
    name: stable
    repository: '*'
    state: present

- name: Make sure binary and stable-rc grimoires are removed
  community.general.sorcery:
    grimoire: binary,stable-rc
    repository: '*'
    state: absent

- name: Make sure games grimoire is pulled from rsync
  community.general.sorcery:
    grimoire: games
    repository: "rsync://download.sourcemage.org::codex/games"
    state: present

- name: Make sure a specific branch of stable grimoire is pulled from git
  community.general.sorcery:
    grimoire: stable.git
    repository: "git://download.sourcemage.org/smgl/grimoire.git:stable.git:stable-0.62"
    state: present

- name: Update only Sorcery itself
  community.general.sorcery:
    update: true

作者

  • Vlad Glagolev (@vaygr)