community.general.sorcery module – Package manager for Source Mage GNU/Linux
Note
This module is part of the community.general collection (version 10.7.5).
You might already have this collection installed if you are using the ansible package.
It is not included in ansible-core.
To check whether it is installed, run ansible-galaxy collection list.
To install it, use: ansible-galaxy collection install community.general.
You need further requirements to be able to use this module,
see Requirements for details.
To use it in a playbook, specify: community.general.sorcery.
Synopsis
- Manages “spells” on Source Mage GNU/Linux using sorcery toolchain. 
Requirements
The below requirements are needed on the host that executes this module.
- bash 
Parameters
| Parameter | Comments | 
|---|---|
| Time in seconds to invalidate grimoire collection on update. Especially useful for SCM and rsync grimoires. Makes sense only in pair with  Default:  | |
| Comma-separated list of _optional_ dependencies to build a spell (or make sure it is built) with; use  This option is ignored if  Providers must be supplied in the form recognized by Sorcery, for example ‘ | |
| Name of the spell or grimoire. Multiple names can be given, separated by commas. Special value  The alias  | |
| Repository location. If specified,  Special value  Only single item in  
 | |
| Whether to cast, dispel or rebuild a package. State  State  Choices: 
 | |
| Whether or not to update sorcery scripts at the very first stage. Choices: 
 | |
| Whether or not to update grimoire collection before casting spells. Choices: 
 | 
Attributes
| Attribute | Support | Description | 
|---|---|---|
| Support: full | Can run in  | |
| Support: none | Will return details on what has changed (or possibly needs changing in  | 
Notes
Note
- When all three components are selected, the update goes by the sequence -- Sorcery -> Grimoire(s) -> Spell(s); you cannot override it. 
- Grimoire handling is supported since community.general 7.3.0. 
Examples
- 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
