Continued from http://teknoarticles.blogspot.com.es/2017/08/automating-local-mirrors-creation-in.html
In the previous blogpost, I explained how to automate the RHEL mirror creation using https://github.com/redhat-nfvpe/rhel-local-mirrors. Now we are going to learn how to deploy and upgrade TripleO using those.
Deploying TripleO
Undercloud
To use local mirrors in the undercloud, you simply need to get the generated osp<version>.repo that you generated with the rhel-local-mirrors playbook, and copy it to /etc/yum.repos.d/ , in the undercloud host:sudo curl http://<local_mirror_ip>/osp<version>_repo/osp<version>.repo \
-o /etc/yum.repos.d/osp.repo
Then proceed with the standard instructions for deploy.Overcloud
Each node from the overcloud (controllers, computes, etc...) needs to have a copy of the repository file from our server where we host the local mirrors. To achieve it, you can include an script that downloads the osp<version>.repo file when deploying.This can be achieved with Heat templates:
heat_template_version: 2014-10-16
description: >
File for downloading the repository file from the asset server
resources:
userdata:
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: assetrepo_config}
assetrepo_config:
type: OS::Heat::SoftwareConfig
properties:
config: |
#!/bin/bash
sudo curl http://<local_mirror_ip>/osp<version>_repo/osp<version>.repo -o /etc/yum.repos.d/osp<version>.repo
outputs:
OS::stack_id:
value: {get_resource: userdata}
And then creating the environment file that will reference it:
resource_registry:
OS::TripleO::NodeUserData: /home/stack/templates/asset-repo.yaml
Then you need to include that environment file in your deploy command:
openstack overcloud deploy --templates -e ~/templates/asset-environment.yaml \
[OTHER OPTIONS]
Upgrading TripleO
Undercloud
To upgrade the undercloud, you need to be sure to disable packages from previous versions, and enable the ones from the new version.If using local mirrors you may need to remove the older repo file:
sudo rm /etc/yum.repos.d/osp.repo
And create the new:sudo curl http://<local_mirror_ip>/osp<version+1>_repo/osp<version+1>.repo -o /etc/yum.repos.d/osp.repo
After that, execute the yum update and openstack undercloud upgrade commands as usual.
Overcloud
To upgrade the overcloud, you need to disable the older repositories and enable the new ones at upgrade time. This is achieved by a parameter that is called UpgradeInitCommand. This needs to contain a custom bash script, that will disable the older repos and enable the new ones, based on your needs.A sample environment using UpgradeInitCommand can be:
cat > overcloud-repos.yaml <<EOF parameter_defaults: UpgradeInitCommand: | set -e # REPOSITORY SWITCH COMMANDS GO HERE
sudo rm /etc/yum.repos.d/osp.repo
sudo curl http://<local_mirror_ip>/osp<version+1>_repo/osp<version+1>.repo -o /etc/yum.repos.d/osp.repo
EOF
And then execute your upgrade command including that overcloud-repos.yaml file:
openstack overcloud deploy --templates \ -e <full environment> \ -e /usr/share/openstack-tripleo-heat-templates/environments/major-upgrade-composable-steps.yaml \ -e overcloud-repos.yaml
Comments
Post a Comment