theforeman.foreman.repository module – Manage Repositories

Note

This module is part of the theforeman.foreman collection (version 3.5.0-dev).

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 theforeman.foreman.

To use it in a playbook, specify: theforeman.foreman.repository.

New in version 1.0.0: of theforeman.foreman

Synopsis

  • Create and manage repositories

Requirements

The below requirements are needed on the host that executes this module.

  • requests

Parameters

Parameter

Comments

ansible_collection_requirements

string

Contents of requirement yaml file to sync from URL

arch

string

Architecture of content in the repository

Set to noarch to disable the architecture restriction again.

auto_enabled

boolean

repositories will be automatically enabled on a registered host subscribed to this product

Choices:

  • no

  • yes

checksum_type

string

Checksum of the repository

Choices:

  • sha1

  • sha256

content_type

string / required

The content type of the repository

Choices:

  • deb

  • docker

  • file

  • ostree

  • puppet

  • yum

  • ansible_collection

deb_architectures

string

comma separated list of architectures to be synced from deb-archive

only available for content_type=deb

deb_components

string

comma separated list of repo components to be synced from deb-archive

only available for content_type=deb

deb_errata_url

string

URL to sync Debian or Ubuntu errata information from

only available on Orcharhino

only available for content_type=deb

deb_releases

string

comma separated list of releases to be synced from deb-archive

only available for content_type=deb

description

string

Description of the repository

docker_tags_whitelist

list / elements=string

list of tags to sync for Container Image repository

only available for content_type=docker

docker_upstream_name

string

name of the upstream docker repository

only available for content_type=docker

download_concurrency

integer

added in 3.0.0 of theforeman.foreman

download concurrency for sync from upstream

as the API does not return this value, this will break idempotence for this module

download_policy

string

download policy for sync from upstream

Choices:

  • background

  • immediate

  • on_demand

gpg_key

string

Repository GPG key

http_proxy

string

Name of the http proxy to use for content synching

Should be combined with http_proxy_policy=’use_selected_http_proxy’

http_proxy_policy

string

Which proxy to use for content synching

Choices:

  • global_default_http_proxy

  • none

  • use_selected_http_proxy

ignorable_content

list / elements=string

List of content units to ignore while syncing a yum repository.

Must be subset of rpm,drpm,srpm,distribution,erratum.

ignore_global_proxy

boolean

Whether content sync should use or ignore the global http proxy setting

This is deprecated with Katello 3.13

It has been superseeded by http_proxy_policy

Choices:

  • no

  • yes

label

string

label of the repository

mirror_on_sync

boolean

toggle “mirror on sync” where the state of the repository mirrors that of the upstream repository at sync time

This is deprecated with Katello 4.3

It has been superseeded by mirroring_policy=mirror_content_only

Choices:

  • no

  • yes

mirroring_policy

string

Policy to set for mirroring content

Supported since Katello 4.3

Choices:

  • additive

  • mirror_content_only

  • mirror_complete

name

string / required

Name of the repository

organization

string / required

Organization that the entity is in

os_versions

list / elements=string

Identifies whether the repository should be disabled on a client with a non-matching OS version.

A maximum of one OS version can be selected.

Set to [] to disable filtering again.

Choices:

  • rhel-6

  • rhel-7

  • rhel-8

  • rhel-9

password

string / required

Password of the user accessing the Foreman server.

If the value is not specified in the task, the value of environment variable FOREMAN_PASSWORD will be used instead.

product

string / required

Product to which the repository lives in

server_url

string / required

URL of the Foreman server.

If the value is not specified in the task, the value of environment variable FOREMAN_SERVER_URL will be used instead.

ssl_ca_cert

string

Repository SSL CA certificate

ssl_client_cert

string

Repository SSL client certificate

ssl_client_key

string

Repository SSL client private key

state

string

State of the entity

present_with_defaults will ensure the entity exists, but won’t update existing ones

Choices:

  • present ← (default)

  • present_with_defaults

  • absent

unprotected

boolean

publish the repository via HTTP

Choices:

  • no

  • yes

upstream_password

string

password to access upstream repository

upstream_username

string

username to access upstream repository

url

string

Repository URL to sync from

username

string / required

Username accessing the Foreman server.

If the value is not specified in the task, the value of environment variable FOREMAN_USERNAME will be used instead.

validate_certs

boolean

Whether or not to verify the TLS certificates of the Foreman server.

If the value is not specified in the task, the value of environment variable FOREMAN_VALIDATE_CERTS will be used instead.

Choices:

  • no

  • yes ← (default)

verify_ssl_on_sync

boolean

verify the upstream certifcates are signed by a trusted CA

Choices:

  • no

  • yes

Notes

Note

  • You can configure certain aspects of existing Red Hat Repositories (like download_policy) using this module, but you can’t create (enable) or delete (disable) them.

  • If you want to enable or disable Red Hat Repositories available through your subscription, please use the theforeman.foreman.repository_set module instead.

Examples

- name: "Create repository"
  theforeman.foreman.repository:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "My repository"
    state: present
    content_type: "yum"
    product: "My Product"
    organization: "Default Organization"
    url: "http://yum.theforeman.org/plugins/latest/el7/x86_64/"
    mirror_on_sync: true
    download_policy: background

- name: "Create repository with content credentials"
  theforeman.foreman.repository:
    username: "admin"
    password: "changeme"
    server_url: "https://foreman.example.com"
    name: "My repository 2"
    state: present
    content_type: "yum"
    product: "My Product"
    organization: "Default Organization"
    url: "http://yum.theforeman.org/releases/latest/el7/x86_64/"
    download_policy: background
    mirror_on_sync: true
    gpg_key: RPM-GPG-KEY-my-product2

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key

Description

entity

dictionary

Final state of the affected entities grouped by their type.

Returned: success

repositories

list / elements=dictionary

List of repositories.

Returned: success

Authors

  • Eric D Helms (@ehelms)