# pulp_repo – Add or remove Pulp repos from a remote host

- Synopsis

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- Add or remove Pulp repos from a remote host.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

add_export_distributor
boolean

Choices:
- no ←
- yes

Whether or not to add the export distributor to new `rpm` repositories.

client_cert path |  | PEM formatted certificate chain file to be used for SSL client authentication. This file can also include the key as well, and if the key is included, `client_key` is not required.
client_key path |  | PEM formatted file that contains your private key to be used for SSL client authentication. If `client_cert` contains both the certificate and key, this option is not required.
feed - |  | Upstream feed URL to receive updates from.
feed_ca_cert string |  | CA certificate string used to validate the feed source SSL certificate. This can be the file content or the path to the file. The ca_cert alias will be removed in Ansible 2.14. aliases: importer_ssl_ca_cert, ca_cert

feed_client_cert
string
added in 2.9.2

Certificate used as the client certificate when synchronizing the repository. This is used to communicate authentication information to the feed source. The value to this option must be the full path to the certificate. The specified file may be the certificate itself or a single file containing both the certificate and private key. This can be the file content or the path to the file.
If not specified the default value will come from client_cert. Which will change in Ansible 2.14.
aliases: importer_ssl_client_cert

feed_client_key string added in 2.9.2 |  | Private key to the certificate specified in importer_ssl_client_cert, assuming it is not included in the certificate file itself. This can be the file content or the path to the file. If not specified the default value will come from client_key. Which will change in Ansible 2.14. aliases: importer_ssl_client_key

force
boolean

Choices:
- no ←
- yes

If `yes` do not get a cached copy.
Alias `thirsty` has been deprecated and will be removed in 2.13.
aliases: thirsty

force_basic_auth
boolean

Choices:
- no ←
- yes

httplib2, the library used by the uri module only sends authentication information when a webservice responds to an initial request with a 401 status. Since some basic auth services do not properly send a 401, logins will fail. This option forces the sending of the Basic authentication header upon initial request.

generate_sqlite
boolean
added in 2.8

Choices:
- no ←
- yes

Boolean flag to indicate whether sqlite files should be generated during a repository publish.

http_agent string | Default: "ansible-httpget" | Header to identify as, generally appears in web server logs.
name - / required |  | Name of the repo to add or remove. This correlates to repo-id in Pulp.
proxy_host - | Default: null | Proxy url setting for the pulp repository importer. This is in the format scheme://host.
proxy_password - added in 2.8 | Default: null | Proxy password for the pulp repository importer.
proxy_port - | Default: null | Proxy port setting for the pulp repository importer.
proxy_username - added in 2.8 | Default: null | Proxy username for the pulp repository importer.
publish_distributor - |  | Distributor to use when state is `publish`. The default is to publish all distributors.
pulp_host - | Default: "http://127.0.0.1" | URL of the pulp server to connect to.
relative_url - / required |  | Relative URL for the local repository.
repo_type - | Default: "rpm" | Repo plugin type to use (i.e. `rpm`, `docker`).

repoview
boolean
added in 2.8

Choices:
- no ←
- yes

Whether to generate repoview files for a published repository. Setting this to "yes" automatically activates `generate_sqlite`.

serve_http
boolean

Choices:
- no ←
- yes

Make the repo available over HTTP.

serve_https
boolean

Choices:
- no
- yes ←

Make the repo available over HTTPS.

state
-

Choices:
- present ←
- absent
- sync
- publish

The repo state. A state of `sync` will queue a sync of the repo. This is asynchronous but not delayed like a scheduled sync. A state of `publish` will use the repository's distributor to publish the content.

url string |  | HTTP, HTTPS, or FTP URL in the form (http|https|ftp)://[user[:pass]]@host.domain[:port]/path
url_password string |  | The password for use in HTTP basic authentication to the pulp API. If the url_username parameter is not specified, the url_password parameter will not be used.
url_username string |  | The username for use in HTTP basic authentication to the pulp API.

use_proxy
boolean

Choices:
- no
- yes ←

If `no`, it will not use a proxy, even if one is defined in an environment variable on the target hosts.

validate_certs
boolean

Choices:
- no
- yes ←

If `no`, SSL certificates will not be validated. This should only be used on personally controlled sites using self-signed certificates.

wait_for_completion
boolean

Choices:
- no ←
- yes

Wait for asynchronous tasks to complete before returning.

## Notes

Note

- This module can currently only create distributors and importers on rpm repositories. Contributions to support other repo types are welcome.

## Examples

    - name: Create a new repo with name 'my_repo'
      pulp_repo:
        name: my_repo
        relative_url: my/repo
        state: present

    - name: Create a repo with a feed and a relative URL
      pulp_repo:
        name: my_centos_updates
        repo_type: rpm
        feed: http://mirror.centos.org/centos/6/updates/x86_64/
        relative_url: centos/6/updates
        url_username: admin
        url_password: admin
        force_basic_auth: yes
        state: present

    - name: Remove a repo from the pulp server
      pulp_repo:
        name: my_old_repo
        repo_type: rpm
        state: absent

## Return Values

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

Key | Returned | Description
--- | --- | ---
repo string | success | Name of the repo that the action was performed on. Sample: my_repo

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Community. [community]

### Authors

- Joe Adams (@sysadmind)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.