sorcery - Package manager for Source Mage GNU/Linux

New in version 2.3.

Synopsis

  • Manages “spells” on Source Mage GNU/Linux using sorcery toolchain

Requirements (on host that executes module)

  • bash

Options

parameter required default choices comments
cache_valid_time
no
Time in seconds to invalidate grimoire collection on update
especially useful for SCM and rsync grimoires
makes sense only in pair with update_cache
depends
no
Comma-separated list of _optional_ dependencies to build a spell (or make sure it is built) with; use +/- in front of dependency to turn it on/off ('+' is optional though)
this option is ignored if name parameter is equal to '*' or contains more than one spell
providers must be supplied in the form recognized by Sorcery, e.g. 'openssl(SSL)'
name
no
Name of the spell
multiple names can be given, separated by commas
special value '*' in conjunction with states latest or rebuild will update or rebuild the whole system respectively
aliases: spell
state
no present
  • present
  • latest
  • absent
  • cast
  • dispelled
  • rebuild
Whether to cast, dispel or rebuild a package
state cast is an equivalent of present, not latest
state latest always triggers update_cache=yes
state rebuild implies cast of all specified spells, not only those existed before
update
no no
  • yes
  • no
Whether or not to update sorcery scripts at the very first stage
update_cache
no no
  • yes
  • no
Whether or not to update grimoire collection before casting spells
aliases: update_codex

Examples

# Make sure spell 'foo' is installed
- sorcery:
    spell: foo
    state: present

# Make sure spells 'foo', 'bar' and 'baz' are removed
- sorcery:
    spell: foo,bar,baz
    state: absent

# Make sure spell 'foo' with dependencies 'bar' and 'baz' is installed
- sorcery:
    spell: foo
    depends: bar,baz
    state: present

# Make sure spell 'foo' with 'bar' and without 'baz' dependencies is installed
- sorcery:
    spell: foo
    depends: +bar,-baz
    state: present

# Make sure spell 'foo' with libressl (providing SSL) dependency is installed
- sorcery:
    spell: foo
    depends: libressl(SSL)
    state: present

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

# Install the latest version of spell 'foo' using regular glossary
- sorcery:
    name: foo
    state: latest

# Rebuild spell 'foo'
- sorcery:
    spell: foo
    state: rebuild

# Rebuild the whole system, but update Sorcery and Codex first
- sorcery:
    spell: '*'
    state: rebuild
    update: yes
    update_cache: yes

# Refresh the grimoire collection if it's 1 day old using native sorcerous alias
- sorcery:
    update_codex: yes
    cache_valid_time: 86400

# Update only Sorcery itself
- sorcery:
    update: yes

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 (i.e. add/remove, including SCM/rsync versions) is not yet supported.

Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Testing Ansible and Developing Modules.

© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.4/sorcery_module.html