Creating docs for repo setup role

Creating docs for repo setup role

Change-Id: I524d9bed621611caf53609d80c894b4b4e8c2732
This commit is contained in:
Sagi Shnaidman 2017-01-12 17:26:10 +02:00 committed by wes hayutin
parent 2d85013e95
commit c9ae188d60
2 changed files with 38 additions and 4 deletions

View File

@ -15,13 +15,13 @@ Role Variables
* `repo_setup_log` - path to repositories setup script log * `repo_setup_log` - path to repositories setup script log
* `repo_run_live`: false/true - where to run repo setup script on host (live host that playbook runs on it) (default: true) * `repo_run_live`: false/true - where to run repo setup script on host (live host that playbook runs on it) (default: true)
* `repo_inject_image_path` - path to image, in case of injecting repositories into the image (default: not defined) * `repo_inject_image_path` - path to image, in case of injecting repositories into the image (default: not defined)
* `repo_cmd_before`: false/true - whether to run `yum update` after repositories are set up (default: true) * `repo_cmd_before`: - shell commands to run before repos setup
* `repo_cmd_after`: false/true - whether to include Ceph repositories (default: true) * `repo_cmd_after`: - shell commands to run after repos setup
* `libvirt_uri` - URI of libvirt in case of using virt-customize to inject repos into the image * `libvirt_uri` - URI of libvirt in case of using virt-customize to inject repos into the image
* `repos` - dictionary or repositories to set, the keys are explained below: * `repos` - dictionary or repositories to set, the keys are explained below:
* `repos.type` - file / generic / package / rpm_url * `repos.type` - file / generic / package / rpm_url
* `repos.releases` - for which releases to set up this repo, if not defined - for all releases. * `repos.releases` - for which releases to set up this repo, if not defined - for all releases.
It support shortcut for all stable releases - '{{ stable }}' It supports shortcut for all stable releases - '{{ stable }}'
*File* *File*
------ ------
@ -33,7 +33,7 @@ Role Variables
*Generic* *Generic*
------ ------
Construct repository file from various parameters and use parameters from downloaded file Construct repository file from various parameters and use parameters from downloaded file
if required (for example delorean hash). if required (for example DLRN hash).
* `repos.filename` - filename for saving the resulting repo (mandatory) * `repos.filename` - filename for saving the resulting repo (mandatory)
* `repos.reponame` - name of repository (mandatory) * `repos.reponame` - name of repository (mandatory)
* `repos.baseurl` - base URL of the repository (mandatory) * `repos.baseurl` - base URL of the repository (mandatory)

View File

@ -1,17 +1,38 @@
#!/bin/bash #!/bin/bash
set -eux set -eux
### --start_docs
## Setup repositories for the job
## ==============================
## Prepare Your Environment
## ------------------------
## * Execute commands before repositories setup
## ::
{{ repo_cmd_before|default('') }} {{ repo_cmd_before|default('') }}
# Make temp dir for files # Make temp dir for files
rm -rf /tmp/repo_role_tmp && mkdir -p /tmp/repo_role_tmp rm -rf /tmp/repo_role_tmp && mkdir -p /tmp/repo_role_tmp
## * Prepare repositories
## ::
{% for repo in repos %} {% for repo in repos %}
{% if repo.releases is not defined or release in repo.releases %} {% if repo.releases is not defined or release in repo.releases %}
{% if repo.type == 'file' %} {% if repo.type == 'file' %}
## * Download and use file from {{ repo.down_url }}
## ::
curl -Lvo /tmp/repo_role_tmp/{{ repo.filename }} {{ repo.down_url }} curl -Lvo /tmp/repo_role_tmp/{{ repo.filename }} {{ repo.down_url }}
{% if repo.priority is defined and repo.priority %} {% if repo.priority is defined and repo.priority %}
## * Change its priority to {{ repo.priority }}
## ::
if ! grep -q "priority" /tmp/repo_role_tmp/{{ repo.filename }}; then if ! grep -q "priority" /tmp/repo_role_tmp/{{ repo.filename }}; then
sed -i "s/\(baseurl=.*\)/\1\npriority={{ repo.priority }}/g" /tmp/repo_role_tmp/{{ repo.filename }} sed -i "s/\(baseurl=.*\)/\1\npriority={{ repo.priority }}/g" /tmp/repo_role_tmp/{{ repo.filename }}
else else
@ -22,6 +43,10 @@ sudo cp -f /tmp/repo_role_tmp/{{ repo.filename }} /etc/yum.repos.d/
{% endif %} {% endif %}
{% if repo.type == 'generic' %} {% if repo.type == 'generic' %}
## * Construct repo file from arguments
## ::
{% if repo.hash_url is defined %} {% if repo.hash_url is defined %}
HASH=$(curl {{ repo.hash_url }} 2>/dev/null | grep baseurl | grep -Eo '[^/]*/[^/]*/[^/]*_.*' ||:) HASH=$(curl {{ repo.hash_url }} 2>/dev/null | grep baseurl | grep -Eo '[^/]*/[^/]*/[^/]*_.*' ||:)
{% endif %} {% endif %}
@ -45,10 +70,19 @@ sudo cp -f /tmp/repo_role_tmp/{{ repo.filename }} /etc/yum.repos.d/
{% endif %} {% endif %}
{% if repo.type == 'package' %} {% if repo.type == 'package' %}
## * Install repo from package {{ repo.pkg_name|default(repo.pkg_url) }}
## ::
{{ repo.custom_cmd|default('sudo yum install -y') }} {{ repo.pkg_name|default(repo.pkg_url) }} {{ repo.custom_cmd|default('sudo yum install -y') }} {{ repo.pkg_name|default(repo.pkg_url) }}
{% endif %} {% endif %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
## * Execute commands after repositories setup
## ::
{{ repo_cmd_after|default('') }} {{ repo_cmd_after|default('') }}
### --stop_docs