Mirroring content

You feed Orbitron YAML requirement manifests — the same shape Ansible uses. Every manifest is stored, content-addressed by SHA-256 (identical re-submissions dedup), and mirrored by parallel background workers on the spot.

Roles

INGESTroles_requirements.ymlyaml
roles:
  - name: geerlingguy.nginx
    version: 3.3.1
  - name: geerlingguy.docker
    version: 7.1.0
  - name: RHEL9-CIS
    src: https://github.com/ansible-lockdown/RHEL9-CIS.git
    version: 2.0.2
APIcurlbash
curl -X POST http://127.0.0.1:8080/api/v1/requirements/roles \
  -H "Authorization: Bearer $ORBITRON_TOKEN" \
  -H "Content-Type: text/yaml" \
  --data-binary @roles_requirements.yml

Collections

INGESTcollections_requirements.ymlyaml
collections:
  - name: community.general
    version: 8.5.0
  - name: containers.podman
    version: 1.12.0
APIcurlbash
curl -X POST http://127.0.0.1:8080/api/v1/requirements/collections \
  -H "Authorization: Bearer $ORBITRON_TOKEN" \
  -H "Content-Type: text/yaml" \
  --data-binary @collections_requirements.yml

Version specifiers

The version field accepts the same range specifiers Ansible does. Orbitron resolves them against the published Galaxy indexes at sync time and mirrors the highest matching release — or every published version for all (roles as git tags, collections as tarballs).

  • empty / latest — highest published version
  • all — every published version (new releases included on each sync)
  • 1.4.5 / ==1.4.5 — exact version (or git tag/branch)
  • >=1.0.0, >1.0.0,<2.0.0 — ranges
  • ~=1.4.5 — compatible release
  • !=2.0.0 — anything but
  • ==1.4.* / 1.* — wildcard prefix

Force a full re-sync

APIcurlbash
curl -X POST http://127.0.0.1:8080/api/v1/sync \
  -H "Authorization: Bearer $ORBITRON_TOKEN"
# poll progress with GET /api/v1/sync/status

Delete cached versions

APIcurlbash
# single cached role version
curl -X DELETE http://127.0.0.1:8080/api/v1/storage/roles/geerlingguy.nginx/1.2.3 \
  -H "Authorization: Bearer $ORBITRON_TOKEN"

# single cached collection version
curl -X DELETE http://127.0.0.1:8080/api/v1/storage/collections/community.general/8.5.0 \
  -H "Authorization: Bearer $ORBITRON_TOKEN"

Declarative, from Ansible

The official chrisvanmeer.orbitron collection covers the full lifecycle — install, configure, bootstrap tokens, mirror wait-for-sync and day-two pruning — with six HTTP modules and two roles, so your fleet stays idempotent. Full guide in theAnsible collection docs.

ANSIBLEterminalbash
$ ansible-galaxy collection install chrisvanmeer.orbitron
$ ansible-playbook -i hosts orbitron_daemon.yml

# roles:
#   chrisvanmeer.orbitron.orbitron        # install + operate daemon
#   chrisvanmeer.orbitron.orbitron_mirror # declare roles/collections