COOKBOOK - a basic install for patch control - Work in Progress

Latest response

Does a cookbook description exist for installing a new Satellite 6 system on RedHat 7? My guess that it does not. I have been thru the docs that are listed on the site and the install doc read like one of those old books that you could not get from page 1 to page 2 because there are questions at the bottom of the page that say if you select this answer got to page XX. But you can never get to page 2 and if you turn to page 2 it says why are you here. Is it because you are stupid enough not to read the directions.

So can I get help in developing a Cookbook for the basic install using RedHat 7 and Satellite 6 for a company that has development, test and production machines that need to have phased patching across the environments. This is one of the most basic environments that I know of and every company that needs/uses Satellite would start from here.

One additional item. As my Network people hate anyone messing with the stuff. Satellite will not be configured to do dns, dhcp, or tftp.

One more additional item. Since the purpose of setting up Satellite for this is to control the patch cycle. Our environment will be:
1. place to hold all patches
2. patch a group of machine that will be used for testing patches and making sure that nothing breaks.
3. patch all other boxes - ie. production and critical test boxes.

Also the purpose of the Cookbook is to be an example appendix for the install document.

Bob

Cook book for RHEL 7.0 and Satellite 6.0 install and build.

Basic RHEL 7.0 install for Satellite 6 system
1. install RHEL 7.0 basic install.
a. also install sos as it is NOT part of the basic package and you need it to file an error report with RedHat.
b. also install ntp as these systems will not list subscriptions or repos if the time does not match RedHat.
c. "yum -y update" the box so that you are current on all existing packages.

  1. next you need to attach your satellite subscriptions.
    a. attach your satellite subscription to your machine on the redhat site like the books says.
    b. subscription-manager repos --enable rhel-server-rhscl-7-rpms --enable rhel-7-server-satellite-6.0-rpms
    These are the speciality repos for satellite. You should already have the basic subscription for the machine.
    c. to validate that you have the subscriptions done correctly do a "yum repolist" and display that the repos are available to you.

[root@satellite services]# yum repolist
Loaded plugins: product-id, subscription-manager
repo id repo name status
!katello-local katello-local 398
!rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux 7 Server (RPMs) 4,817
!rhel-7-server-satellite-6.0-rpms/7Server/x86_64 Red Hat Satellite 6.0 (for RHEL 7 Server) (RPMs) 408
!rhel-ha-for-rhel-7-server-rpms/7Server/x86_64 Red Hat Enterprise Linux High Availability (for RHEL 7 S 45
!rhel-server-rhscl-7-rpms/7Server/x86_64 Red Hat Software Collections RPMs for Red Hat Enterprise 779
repolist: 6,447

  1. Next you need to install all of the base rpms.
    yum install @base -y
    This will add about 75 packages that are not part of the system base install.
    Also you need to update all the patches installed
    yum -y update

The start of the Satellite 6 build
3. Next you need to install the satellite software. Wait for the drum roll.
a. "yum install katello" This will result in 597 packages being added to your machine.

  1. to configure the package
    a. "katello-installer" this will configure the software and tell you that:

[root@satellite ~]# katello-installer
Installing Done [100%] [......................]
Success!
* Katello is running at https://satellite.example.com
Initial credentials are admin / SgwrqpDWRrV7Bf3y
* Capsule is running at https://satellite.example.com:9090
* To install additional capsule on separate machine continue by running:"

  capsule-certs-generate --capsule-fqdn "$CAPSULE" --certs-tar "~/$CAPSULE-certs.tar"

The full log is at /var/log/katello-installer/katello-installer.log

This means that it is suppose to be running and it is but not on IPV4. What I found on my machine is:

tcp 0 0 10.64.91.20:46206 10.64.91.20:5671 ESTABLISHED
tcp 0 0 10.64.91.20:46200 10.64.91.20:5671 ESTABLISHED
tcp 0 0 127.0.0.1:27017 127.0.0.1:41653 ESTABLISHED
tcp 0 0 127.0.0.1:52140 127.0.0.1:9300 ESTABLISHED
tcp6 0 0 :::443 :::* LISTEN
tcp6 0 0 :::8443 :::* LISTEN
tcp6 0 0 127.0.0.1:8005 :::* LISTEN
tcp6 0 0 :::5671 :::* LISTEN
tcp6 0 0 :::5672 :::* LISTEN
tcp6 0 0 :::8009 :::* LISTEN
tcp6 0 0 :::8140 :::* LISTEN
tcp6 0 0 :::80 :::* LISTEN
tcp6 0 0 :::8080 :::* LISTEN
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 127.0.0.1:34483 127.0.0.1:5432 ESTABLISHED
tcp6 0 0 127.0.0.1:34481 127.0.0.1:5432 ESTABLISHED
tcp6 0 0 127.0.0.1:34546 127.0.0.1:5432 ESTABLISHED
tcp6 0 0 127.0.0.1:34482 127.0.0.1:5432 ESTABLISHED
udp 0 0 0.0.0.0:43540 0.0.0.0:*
udp 0 0 127.0.0.1:48004 127.0.0.1:48004 ESTABLISHED

The software which uses port 443 appears to start on IPV6 and not on IPV4. Problems is we do not route ipv6 in our company.

To correct the IPV6 problem you need to do an ifconfig and find the name of your interface - mine was:

[root@satellite services]# ifconfig
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.64.91.20 netmask 255.255.255.0 broadcast 10.64.91.255
ether 38:ea:a7:10:af:38 txqueuelen 1000 (Ethernet)
RX packets 136324 bytes 8578421 (8.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5130 bytes 3770810 (3.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

go to /etc/sysconfig/network-scripts and edit the ifcfg-eno1 file and turn off the IPV6 items:

IPV6INIT=no
IPV6_AUTOCONF=no
IPV6_DEFROUTE=no
IPV6_FAILURE_FATAL=no

The final way to correct this problem is to edit /etc/sysctl.conf and add the following line:
net.ipv6.conf.all.disable_ipv6 = 1

This will shutdown the IPV6 usage on the interface. This is step 1 of fixing the ports on the interface.
Next we need to add the correct files to make firewalld work correctly.
copy the httpd.xml file from /usr/lib/firewalld/services to /etc/firewalld/services then using httpd.xml as a master file copy it
to httpds.xml and edit it to change the short parameter WWW (HTTP),/short> and the port parameter to 443.

Here is the list of items and ports that need to be created from the hppd.xml master file.

elasticsearch - 9200
foreman - 9090
https - 443
port5671 - 5671
puppet - 8140
xhttp - 8080

With these change reboot the machine and the port will be open and available to connect to.

I then used my browser to access my satellite machine on https://satellite.mydomain.com and it worked.
Also do not close the terminal session as it has the login and passwd that is default to get in. And it is not something simple.

Satellite structure
I have decided to structure my patch system as such:
Library -> TestGroup -> Production

The Library is where all the patches are stored as received. And you CANNOT remove it. I know I tried. What a waste of time for that stupid try.
The TestGroup are a bunch of servers that we have decided to do initial patch testing on. Some development and also QA machines.
The Production group are the rest of the machine that we have which include production, production support and user testing. In other words everything else.

Next Step
You now need to load your Manifest from the RedHat site. A couple of items of note.
When you go to specify how may of the licenses to include when you have multiple units on a license you MUST check the count on the right had side of the screen otherwise it defaults to "1". So if you do not increase the count you will have to do this multiple times and each pass add the license as a separate item in the manifest with a count of "1" instead of 8 or 16 or 20 items if that is how many units are on the license. It just makes a mess of the information that you are transferring to the Satellite system.

After transferring the manifest.zip file to your Satellite system then you need to import the info it to the system.

OK - now that you have subscriptions on the Satellite system you can start connecting your machines to the Satellite system for patching.
The easiest way to connect a machine is to first remove the machine from RedHat's site by deleting it from there.
Next you need to delete a file from the target machine which is located in /etc/sysconfig/rhn and is called systemid also remove the file systemid.save if it exists as this is a copy from an upgrade of this file.
Next on the system default web page select the "Hosts" tab and select the "Content Host" from the pull down list. When your screen appears on the upper right of the screen is a button called "Register Content Host" in blue. Click on the button and it will generate a screen with info that you can use based upon you specific environment. The first command will be a rpm command that will load a bootstrap file into your system that is specific to your setup. The second command then can be used to register your machine to the Satellite system so that it knows about it. It puts your machine in the default "Library" group which means that if you "yum update" the machine the latest set of patches will be installed on that box.

The next step is to select your target machine from the list on the screen. On the resulting screen will be detailed info on your target box. You need to select the "Subscriptions" tab and it will display a screen that has several useful pieces of info on it. The first is the "status" light indicator that informs you if you have a valid subscription attached to this machine. And first indication is that we do not have a valid subscription. So select the "Add" tab and this will show a screen with the listed available subscriptions that this machine can use. Check the box of the subscription that is to be used for this machine. Click the button on the right that says "Add Selected". This will then attach that subscription to this machine.

NOTE ABOUT SUBSCRIPTIONS
If when you add a machine to Satellite you find that the subscription indicator is GREEN and not RED. Then the system thinks you have a subscription but you have not applied one yet. PROBLEM what this says is that you are missing the 69.pem file from /etc/pki/product directory. This file is placed when then "katello-ca-consumer-latest.noarch.rpm" is installed BUT I have found that it is not always there. So if you already have a machine with the same release level (ie. REDHAT 5 or REDHAT 6) in Satellite then you can copy it from there. ELSE contact support and they can supply the correct file for you.

NOTE
We have a "Bunch" of VMWare virtual machines and the above process is a little different for the virtual machines. I will create another thread on how I was able to get those machines to my environment . It is relatively simple but it is different enough that a separate thread will help.

After you have applied the subscription to the machine in Satellite 6 then go back to the command line on the target machine and run this command:
subscription-manager repos
Since you applied the subscription in Satellite you will not have to figure out the poolid to be applied from the command. The system just ask for the repos that the subscription that you just applied has. It is as simple as that.

Next you need to enable the common repos for your machines release level. So go to /etc/yum.repos.d and vi the redhat.repo file. Search for common ( /common) and then go down in the definitions and change enable = 0 to enable = 1. Save the file.

Next you need to sync yum for the repos enabled. yum repolist This will sync only the repos that are to be used.
After that finishes the there is one more thing to do. yum install katello-agent. If you have a dependency problem you will have to remove the offending rpms to clear the problem. Otherwise just answer "y" to the install and it will finish. In the process of installing katello is will start a service call "goferd". This is the katello agent running. To check if it is running do: *** ps -eadf | grep gof***. If "python /usr/bin/goferd --foreground" is in the listing then the katello agent is running.

It will take a while (ie overnight) for the katello agent to indicate that it is installed on Satellite.

At this point you have a operational Satellite 6 system

Bob

Responses

well it appears that this is not necessarily a big issue here. BUT I have to create at RHEL 7.0 and a Satellite 6 system to maintain my patching for about 100 machines in my office. So I will be asking questions about how to do things here. From the manual the first example is not very useful because I am not supporting a multi-country environment. But the basic example from above is what 99% of satellite users at least start from.

Bob

Take a look at https://access.redhat.com/solutions/1201913 and let me know if that helps out.

Bryan,

Access to the above link is restricted:
You do not have permission to access the page you requested. If this is knowledge content, it may be unpublished or retired. Documents may be retired when they are outdated, duplicated, or no longer necessary. Please try searching the Customer Portal for the most current, published information.

Sorry.. I thought they had unlocked it. I believe it will be unlocked in a few days.

This link is now generally available.
Satellite 6 Provisioning Quick Start Guide

Robert,

Which installation documentation are you referring to? can you provide links to the documents that you have already read so I can avoid re-linking to them?

Have you completed the Satellite 6 product installation? or are there issue with this? (ie. which stage of the process are you at in the install/configuration)

I think the following document is relevant to your questions (but it is for the earlier version of Satellite). The approach should be transferable though.
https://access.redhat.com/articles/469173

My guess is that you need a revised version of this document for Satellite 6.

Well my story goes as follows: I installed a RedHat 7.0 box that would not display any repos even though it was subscribed. It seems that 2 items are missing from a 7.0 base install. Sosreport and ntp. The stupid clock was wrong and it took from Friday afternoon to Wednesday afternoon to figure it out with Redhats help. After I got the box patched. (ya----). I started using the install manual "Red Hat Satellite 6.0 Installation Guide". I am sorry but for someone who has not seen this product before the manual sucks bigtime. You see from my initial question after examining the docs I am SO confused about how to implement this product. My larges fear is that I will make a decision that will preclude further decisions down the road because the people who have written the manual have never used the product before. Any document that I try to work with should take the process from the simple to the complex in easy steps. What I would like to create is a "Cookbook" type of document that shows how to implement a single company that has development, test and production machines in a single location. Each group of machines are patched in sequence so that patches can be vetted for software changes.
This afternoon I started to follow the installation guide and immediately ran into the prerequisites for the iptables entries. The system does not have uid-owner of foreman or katello so I got tired of banging my head against the wall. So I tried to use the .iso file to load the program. I mounted the image up and cd onto it. I ran the ./install_packages script and it started liking what it found BUT bang into the wall again. It need ruby installed to install the katello software BUT ruby is not part of the image or the base install of the OS. So one more time with filing a ticket with Redhat and we will see what that brings. Part of my question is am I asking for something so different from how everyone else uses this product.

Bob

Part of my question is am I asking for something so different from how everyone else uses this product.

I don't think the use case is unusual at all, and is very common.

You have chosen both a product that is quite involved to install/configure and has only recently been released (weeks).

I assume this is the document you are referring to:
https://access.redhat.com/documentation/en-US/Red_Hat_Satellite/6.0/html/Installation_Guide/Installing_Red_Hat_Satellite_with_an_ISO_Image.html

From your comment I assume you are now following the ISO install "2.2. Installing Red Hat Satellite with an ISO Image".

Did the install_packages script complete successfully? or are there errors in the script itself? If you provide the specific errors you are receiving, and at which point in the documentation you are at when you receive them, I am confident the community will have a better chance of answering your questions and assisting you through the process.

I also notice that I get 5 points everytime I post. When I finish this project I should have about a million points. It appears.

Bob

Best of luck, Bob. Keep us updated!

I just saw this, a doc which one of the consultants put together can be found at https://www.gitbook.io/book/abradshaw/getting-started-with-satellite-6/. Perhaps that will help in the short term.

Thanks Bryan - This looks like a great start. There are some obvious differences of 6.5 and 7.0 but it is a start. From my failures we also need "ruby" to install from the iso image.

Bob

OK - an update of where I am. I have gotten satellite installed with some help from Taylor at redhat and the above link to the abradshaw document. I had to fix my subscriptions as listed in this article https://access.redhat.com/solutions/1120693 This provide the necessary info so that the speciality rpms were available for the ruby items need to install. By the way it installed 597 packages for the katello install. I am glad that I have a fat pipe to the internet for this.
I am going to start updating the basic item at top with the cookbook items for all to see.
After installing I ran the katello-install command and it finish and told me that katello was running at http://satellite.machine when I went there low and behold NOTHING. I checked in the machine with netstat for port 443 and nothing is listed. O well back to being a ram and butting my head against the dam (Frank Sinatra Song).

Bob

With your previous issue which channel were you missing that contained the required ruby version?

As for your current issue, can you see the katello process running in ps? Is it listed against any port when running the following?

netstat -lnp

rhel-server-rhscl-7-rpms

Bryan, can you confirm if this is a bug?

I wouldn't expect RHSCL to be required for the installation of Red Hat shipped products? Is the required ruby rpm going to be shipped with the ISO in future? or is there an expectation/assumption that RHSCL is available to servers?

Satellite makes use of the SCL, so it should be in your your subscription.

The SCL should be included as part of your subscription

OK - another update. I now have the tool running and responding correctly. I have documented above the network changes that are needed and not documented in the install manual. The problem is RHEL 7.0 uses firewalld and not iptables for access control. SOOOO - you have to do it differently. I dug out the info on RHEL 7.0 and with the info on the iptables was able to create the .xml files need and placed them in the correct location on the machine. I guess that my biggest problem is that the manual was never used to install on a RHEL 7.0 machine. No matter what support says.
Any way on to the next part - because there is always a next part - I need to decide on the tool configuration so that I can patch my machines.

Bob

I have set up the satellite with org of mycompany and a location of mylocation. It is my understanding the I should remove the default items in org and location. I have also setup a
lifecycle environment paths of -> library -> Development -> QA -> UA -> Production. Is this correct because this is the order that I want my patching progression to follow?

I have not added my manifest yet because I am unsure as to how that connects to machines and how machine connect to the lifecycle part.

Bob

The manifest is like the old satellite certificate. It is the mechanism to trasnfer the subscriptions from your Customer Portal account to the satellite.

Brian I understand the words but I have never used satellite before. I have installed the manifest and it now show the 24 licenses that I purchased. But there are no repos available nor any obvious way to get them. I am open to any help from any direction as to which way to go.

Bob

I would suggest the next step is to take a look at the link Bryan provided above (which is now available):
Satellite 6 Provisioning Quick Start Guide

Specifically "Subscription Import & Content Sync"

Hi Bob,

If I understand correctly, you're at the stage where you've imported the manifest. The next stage is to enable the repositories on the Satellite server, then sync them with RPMs from Red Hat's CDN. This page in the Installation Guide should have the next few steps: 4.1.1. Using Red Hat Content Providers - Follow the procedure in 4.1.1.3 Enabling Red Hat Repositories.

What this does is show a hierarchial tree with all the repositories from your manifest. So navigate through the repository tree and click the checkboxes of all the repositories you want to enable for Satellite to use. For example, in the Provisioning Quick Start Guide (see Subscription Import & Content Sync) the repositories that get enabled are:

  • Red Hat Enterprise Linux 6 Server (Kickstart)
  • Red Hat Enterprise Linux 6 Server (RPMs)
  • Red Hat Enterprise Linux 6 Server - RH Common Beta (RPMs)

Once you enable these repositories that should get automatically assigned to a "Product" entry. A Product in Satellite is essentially a collection of repositories grouped together. Also worth noting, you can create your own Product and attach various repositories and Puppet modules for configuration. For example, you might have a custom Product that requires certain Red Hat repositories, some custom repositories, and Puppet configuration.

(More info on Products in 4.1.2. Using Products)

After you've enabled your repositories, you can sync them. You can do this by following the steps in Section 4.1.3 - Synchronizing Content from Source Repositories to Red Hat Satellite.

This pulls the RPMs from Red Hat's CDN and saves them to your Satellite server. Note that this usually takes a while to complete depending on how large the repository is.

I hope this helps. Please feel free to get in touch if you run into any further issues.

Ok - New update. I have been able to download my repositories and set them up. I have also made a pass for scheduling there syncing. We will see tonight. I found that you MUST sync them the first time manually because of the unknown amount of storage needed and software guru's thought that you should do that safely and knowing if you have enough space. Also Most repos are less than 10Gb but the major ones are 20+Gb so be prepared to wait while it completes. I will be updating the cookbook shortly with my notes. I have also been able to register a host. This host is the Satellite interface to VMWare and I at least have it registered to the Satellite system and updated. Next to setup the necessary access to VMWare. More fun but this is achievable.

Bob

Hi Bob, how did you go with the sync and setting up access to VMWare?

Good question: I would be surprised if VMware had a public (or paywalled) REPO. Mostly because the updates to their software (i.e. VMware Tools) follows vCenter and/or the Hypervisor(s) - so, you would not want the most current VMware Tools if your Hypervisor and vCenter were still a year old. (I'm not certain how exactly Vmware decides which version of the Tools to push out - whether it's vCenter or the Hypervisor, or both?).

I have gotten the sync to work just fine. Also the setup for vmware is fairly easy. I had a user setup in Active directory. That user then was allowed READ-ONLY access to the machines that the redhat boxes were on. Internal machines and DMZ machines. The system found all the hardware machines an gave back machine ID numbers like: 31333835-3830-584d-5130-323330394c58 now this is something that is real helpful. So the process to put an system name on this is as follows. I used Vconsole to identify the virt systems and what hardware system they resided on and I made a list from that. Then I removed a host of one virt from redhat and installed it to the satellite system. It then identified the number of the hardware host it was mounted on. I then went thru that link the the hardware host listed and edited the system name so that I had a machine name instead of long number. Works just fine now.

Bob

I have just found out that I do not need the 6.4... and such repos, as these are for machines that MUST be retained at that release level because of some vendor specific requirements. (they can not bother to update their machine base and test). So the only repositories that are needed are the 6server and 7server repos which contain the continuous upgraded code. (ie. auto upgrade from 6.5 to 6.6 are contained in 6server) Now I need to figure out how to remove the extra repos from my Satellite 6 machine. O well one more time to ring supports bell about another issue.

As an extra note: Support has been fantastic about help with the different issues that I have come across.

Now to update the cookbook with additional info as I continue to document a way of making this work.

Bob

Well after a long process of talking to support about different problems that occurred while install the Satellite 6 system. It is operational. YAH!!!
I will be posting another thread for what I did to make my VMWare system integrate into Satellite 6. This process is the same for the supported Virtual type systems.

So hopefully your installation will be MUCH simpler than mine.

Bob

Hi Bob,
Glad it all worked out!
What would you say were the biggest hurdles you faced?
- Dan

EDIT: Also, started a discussion here: https://access.redhat.com/discussions/1275993

Daniel - 2 major hurdles - 7.0 and Satellite 6 - Sorry I just could not pass that up. On 7.0 their major problem was that SOSreport and ntp are NOT part of the base install. SOOOO.... no way to generate error reports, the other was ntp. I could not patch my box because of a time difference. These all came about because Satellite 6.0 STATES only install the base installation as any other items will break it. I am suprised but not about SOSreport and ntp because testing should have found these items. That finishes 7.0. Now when starting up with Satellite 6.0 the biggest problem is documentation. Once you find the docs on Redhat (not really hard to do) you say to yourself ("yay - there really is an install doc") hurry up and get it. Open it up and first diagram has us setting up the world in a multidimensional array and creating world peace. RIGHT!!!. Please 99% of your target population will be first time users. And most just want to get patching setup. So start with the most simple setup there is - 1 server and 1 target. Most Sysadmins can take an example and expand/modify it to their needs. So walk the basics - I just want patching to start. That is what my thread was all about. Even it got complex quick and it should not be.

Daniel - just so that you and others know I really like the 7.0 - Satellite 6.0 product but it is overly complex to do everything at once. Prior to this usage I was happy using Classic patch support. Yes this product can put a man on the moon but first thing less learn to stack bricks for a roof over our heads. I just want to make the next persons travel down this road easier.

Bob

Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.