Merge "Add 'generic' repos setup using yum_config module"
This commit is contained in:
commit
673cebca6e
|
@ -1,8 +1,17 @@
|
|||
---
|
||||
repo_setup_dir: "{{ working_dir }}"
|
||||
repo_setup_script_source: repo_setup.sh.j2
|
||||
repo_setup_log: repo_setup.log
|
||||
repo_setup_script: repo_setup.sh
|
||||
repo_setup_log: repo_setup.log
|
||||
# New repo_setup based on triple-repos
|
||||
repo_cmd_before_setup_template: repo_cmd_before_setup.sh.j2
|
||||
repo_cmd_after_setup_template: repo_cmd_after_setup.sh.j2
|
||||
repo_cmd_before_setup_script: repo_cmd_before_setup.sh
|
||||
repo_cmd_after_setup_script: repo_cmd_after_setup.sh
|
||||
repo_setup_new_template: repo_setup_new.sh.j2
|
||||
repo_setup_new_script: repo_setup_new.sh
|
||||
# File to temporary store environment variables which will be loaded in repo_setup_newest.sh and repo_cmd_after_setup.sh
|
||||
repo_setup_env_filepath: "/tmp/repo_setup_env"
|
||||
repo_run_live: true
|
||||
# Releases shortcuts
|
||||
stable:
|
||||
|
|
|
@ -4,3 +4,23 @@
|
|||
src: "{{ repo_setup_script_source }}"
|
||||
dest: "{{ repo_setup_dir }}/{{ repo_setup_script }}"
|
||||
mode: 0755
|
||||
when: not use_yum_config_module|default(false)|bool
|
||||
|
||||
# When using tripleo-repos yum-config, split into 3 phases
|
||||
- block:
|
||||
- name: Create script - commands before repo setup
|
||||
template:
|
||||
src: "{{ repo_cmd_before_setup_template }}"
|
||||
dest: "{{ repo_setup_dir }}/{{ repo_cmd_before_setup_script }}"
|
||||
mode: 0755
|
||||
- name: Create repo setup script (new)
|
||||
template:
|
||||
src: "{{ repo_setup_new_template }}"
|
||||
dest: "{{ repo_setup_dir }}/{{ repo_setup_new_script }}"
|
||||
mode: 0755
|
||||
- name: Create script - commands after repo setup
|
||||
template:
|
||||
src: "{{ repo_cmd_after_setup_template }}"
|
||||
dest: "{{ repo_setup_dir }}/{{ repo_cmd_after_setup_script }}"
|
||||
mode: 0755
|
||||
when: use_yum_config_module|default(false)|bool
|
||||
|
|
|
@ -13,7 +13,10 @@
|
|||
- include_tasks: create-repo-script.yml
|
||||
|
||||
- include_tasks: setup_repos.yml
|
||||
when: repo_run_live|bool
|
||||
when: repo_run_live|bool and not use_yum_config_module|default(false)|bool
|
||||
|
||||
- include_tasks: setup_repos_new.yml
|
||||
when: repo_run_live|bool and use_yum_config_module|default(false)|bool
|
||||
|
||||
- include_tasks: inject_repos_into_image.yml
|
||||
when: repo_inject_image_path is defined
|
||||
|
|
|
@ -0,0 +1,51 @@
|
|||
---
|
||||
- name: Run commands before repo setup
|
||||
shell: >
|
||||
set -o pipefail &&
|
||||
{{ repo_setup_dir }}/{{ repo_cmd_before_setup_script }} 2>&1 {{ timestamper_cmd }}
|
||||
| tee -a {{ repo_setup_dir }}/{{ repo_setup_log }}
|
||||
become: true
|
||||
register: result
|
||||
no_log: result.rc == 0
|
||||
changed_when: true
|
||||
|
||||
- name: Setup repos on live host
|
||||
shell: >
|
||||
set -o pipefail &&
|
||||
{{ repo_setup_dir }}/{{ repo_setup_new_script }} 2>&1 {{ timestamper_cmd }}
|
||||
| tee -a {{ repo_setup_dir }}/{{ repo_setup_log }}
|
||||
become: true
|
||||
register: result
|
||||
no_log: result.rc == 0
|
||||
changed_when: true
|
||||
|
||||
- name: Configure 'generic' repos using yum-config module
|
||||
become: true
|
||||
tripleo.repos.yum_config:
|
||||
type: repo
|
||||
name: "{{ item.reponame }}"
|
||||
enabled: "{{ item.enabled|default('true') }}"
|
||||
environment_file: "{{ repo_setup_env_filepath }}"
|
||||
file_path: "/etc/yum.repos.d/{{ item.filename }}"
|
||||
set_options:
|
||||
baseurl: "{{ item.baseurl|default(omit) }}"
|
||||
priority: "{{ item.priority|default(omit) }}"
|
||||
gpgcheck: "{{ item.gpgcheck|default('0') }}"
|
||||
mirrorlist: "{{ item.mirrorlist|default(omit) }}"
|
||||
module_hotfixes: "{{ item.module_hotfixes|default(omit) }}"
|
||||
includepkgs: "{{ item.includepkgs|default(omit) }}"
|
||||
exclude: "{{ item.exclude|default(omit) }}"
|
||||
sslverify: "{{ item.sslverify|default(omit) }}"
|
||||
with_items: "{{ repos + add_repos + job.add_repos|default([]) }}"
|
||||
when:
|
||||
- item.type == 'generic'
|
||||
|
||||
- name: Run commands after repo setup
|
||||
shell: >
|
||||
set -o pipefail &&
|
||||
{{ repo_setup_dir }}/{{ repo_cmd_after_setup_script }} 2>&1 {{ timestamper_cmd }}
|
||||
| tee -a {{ repo_setup_dir }}/{{ repo_setup_log }}
|
||||
become: true
|
||||
register: result
|
||||
no_log: result.rc == 0
|
||||
changed_when: true
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/bash
|
||||
set -eux
|
||||
|
||||
### --start_docs
|
||||
|
||||
## * Source user rc file to get previous environment variables
|
||||
## ::
|
||||
|
||||
if [ -f {{ repo_setup_env_filepath }} ]; then
|
||||
source {{ repo_setup_env_filepath }}
|
||||
fi
|
||||
|
||||
## * Execute commands after repositories setup
|
||||
## ::
|
||||
|
||||
{{ repo_cmd_after|default('') }}
|
||||
{{ dep_repo_cmd_after|default('') }}
|
||||
|
||||
### --stop_docs
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
set -eux
|
||||
|
||||
### --start_docs
|
||||
|
||||
## Setup repositories for the job
|
||||
## ==============================
|
||||
|
||||
## Prepare Your Environment
|
||||
## ------------------------
|
||||
|
||||
## * Execute commands before repositories setup
|
||||
## ::
|
||||
|
||||
{{ repo_cmd_before|default('') }}
|
||||
{{ dep_repo_cmd_before|default('') }}
|
||||
|
||||
# Make temp dir for files
|
||||
sudo rm -rf /tmp/repo_role_tmp && mkdir -p /tmp/repo_role_tmp
|
||||
|
||||
### --stop_docs
|
|
@ -0,0 +1,89 @@
|
|||
#!/bin/bash
|
||||
set -eux
|
||||
|
||||
### --start_docs
|
||||
|
||||
## * Loading environment file to get previous defined variables
|
||||
## ::
|
||||
|
||||
if [ -f {{ repo_setup_env_filepath }} ]; then
|
||||
source {{ repo_setup_env_filepath }}
|
||||
fi
|
||||
|
||||
## * Prepare repositories
|
||||
## ::
|
||||
|
||||
# Repos can be defined in repos, add_repos (used mostly in
|
||||
# featuresets and in the job itself
|
||||
|
||||
# creating the following repos
|
||||
{% for repo in repos + add_repos + job.add_repos|default([]) %}
|
||||
{% if repo.reponame is defined %}
|
||||
# repo = {{ repo.reponame }}
|
||||
{% else %}
|
||||
# repo.reponame is not defined
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% for repo in repos + add_repos + job.add_repos|default([]) %}
|
||||
{% if repo.releases is not defined or release in repo.releases %}
|
||||
|
||||
{% if repo.type == 'file' %}
|
||||
|
||||
## * Download and use file from {{ repo.down_url }}
|
||||
## ::
|
||||
|
||||
curl -Lvo /tmp/repo_role_tmp/{{ repo.filename }} {{ repo.down_url }}
|
||||
{% 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
|
||||
sed -i "s/\(baseurl=.*\)/\1\npriority={{ repo.priority }}/g" /tmp/repo_role_tmp/{{ repo.filename }}
|
||||
else
|
||||
sed -i "s/priority=.*/priority={{ repo.priority }}/g" /tmp/repo_role_tmp/{{ repo.filename }}
|
||||
fi
|
||||
{% endif %}
|
||||
{% if repo.reponame is defined %}
|
||||
sed -i "s/\[.*\]/[{{ repo.reponame }}]/" /tmp/repo_role_tmp/{{ repo.filename }}
|
||||
{% endif %}
|
||||
{% if repo.includepkgs is defined %}
|
||||
echo -e '\nincludepkgs={{ repo.includepkgs|join(",") }}' >> /tmp/repo_role_tmp/{{ repo.filename }}
|
||||
{% endif %}
|
||||
sudo cp -f /tmp/repo_role_tmp/{{ repo.filename }} /etc/yum.repos.d/
|
||||
{% endif %}
|
||||
|
||||
{% if repo.type == 'package' %}
|
||||
|
||||
## * Install repo from package {{ repo.pkg_name|default(repo.pkg_url) }}
|
||||
## ::
|
||||
|
||||
{% if repo.custom_cmd is defined %}
|
||||
{{ repo.custom_cmd }} {{ repo.pkg_name|default(repo.pkg_url) }}
|
||||
{% else %}
|
||||
sudo {{ ansible_pkg_mgr }} install -y {{ repo.pkg_name|default(repo.pkg_url) }}
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if use_rhsm|bool %}
|
||||
|
||||
## * Install repo from rhsm subscription manager
|
||||
## ::
|
||||
|
||||
subscription-manager register --username {{ rhsm_username | quote }} --password {{ rhsm_password | quote }}
|
||||
subscription-manager attach --pool={{ pool_id }}
|
||||
subscription-manager repos --disable=*
|
||||
|
||||
{% for repo in rhsm_repos %}
|
||||
|
||||
subscription-manager repos --enable={{ repo.name }}
|
||||
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
### --stop_docs
|
Loading…
Reference in New Issue