GithubHelp home page GithubHelp logo

jose-delarosa / dell-satellite-sync Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 3.0 69 KB

Distribute Dell OpenManage content via Satellite Server

License: GNU General Public License v3.0

Python 86.87% Shell 5.84% Roff 7.30%

dell-satellite-sync's Introduction

 Introduction 
 ============

 Dell-satellite-sync is a tool used to import the Dell OpenManage Server
 Administrator (OMSA) yum repositories into an RHN Satellite / Spacewalk server
 and subscribe registered servers to corresponding OMSA channels.

 For additional information visit http://linux.dell.com/dell-satellite-sync.
 For information on OMSA yum repos, visit http://linux.dell.com/repo/hardware.

 Overview                                                                     |
 ========

 The functionality of dell-satellite-sync is divided into two parts: _server_
 actions and _client_ actions.

 * Server actions

 For each existing OS base channel in your RHN server (i.e. RHEL 5 i386,
 RHEL 6 x86_64), dell-satellite-sync creates child channels that correspond to
 the repository for each Dell system and the "platform_independent" repository.

 - The "platform_independent" repository is not specific to any Dell server,
   it contains the main OpenManage packages and has an average of about 1200
   packages (per OS release & arch).

 - System-specific repositories contain driver and firmware packages that are
   specific to each server, and each repository contains 10-15 packages (per OS
   release and arch). Some contain as few as 2.

 Dell-satellite-sync uses system IDs (4-character hex string) to create labels 
 for server-specific child channels. For example, the label for the RHEL 6
 child channel for the Dell PowerEdge R515 server is the somewhat cryptic
 'dell-om-7.3.0-dev_0x0489-rhel-x86_64-server-6', but you shouldn't
 have to deal with channel labels at all. On the other hand, channel names
 (which are more commonly used) have more descriptive names such as
 "Dell OM 7.3.0 on per515 for rhel-x86_64-server-6".

 The file /etc/sysconfig/dell-system-ids contains a mapping of server names to
 system IDs that are used to label OMSA child channels. This list is updated
 every few months and it is possible that it might be outdated at any given time
 (though we try to keep up with new servers!). If a system ID for a newer
 PowerEdge server is not in the dell-system-ids file, dell-satellite-sync will
 not be able to import the system-specific channel for your server.

 Dell-satellite-sync uses by default the yum repositories located in
 http://linux.dell.com/repo/hardware/latest, but you can use any mirror you'd
 like.

 * Client actions

 When executing client actions, dell-satellite-sync queries the RHN database
 for all subscribed systems and attempts to register them to the
 "platform_independent" channel as well as their specific system channel.

 For each registered system, it performs the following actions:

 a. Installs the repositories' GPG keys, required for installing its packages.
 b. Installs the 'smbios-utils' package & extracts the system ID.
 c. Subscribes the system to the correct channels.

 It is HIGHLY recommended that registered systems have the osad daemon installed
 and running (install the 'osad' RPM). This will allow remote actions on the
 systems to be executed very quickly. Otherwise, dell-satellite-sync will not
 be able to report back if the remote actions completed successfully since it
 will timeout after about 2 hours of waiting (systems check-in on their own
 every 4 hours). If you are using a firewall, be sure open port 5222/tcp on
 both the satellite server and the registered system.

 On systems that were just recently registered to RHN (even with osad running),
 it's possible that some of the remote actions on systems could fail since they
 have not done an initial check-in. If this is the case, re-run it a few minutes
 later.

 CLIENT ACTIONS ARE OPTIONAL. You can always perform these steps on each
 registered system individually, but you can save *lots* of time especially if
 you have a large number of registered clients. As you can see from the last
 paragraphs above, there are some manual steps that you still need to perform
 on registered systems prior to executing client actions, but hopefully that's
 something that you have already done.

 Installation
 ============

 To install, simply install the pre-compiled RPM or build an RPM from source by
 simply running the 'mk_rpm.sh' script. Make sure you have the 'rpm-build'
 package installed.

 FAQ
 ===

 Q. Do I have to be root (superuser) to run this tool?

 A. No. Since native APIs are used, this tool can be used by non-root users as
    long as valid RHN login credentials are provided.

 Q. I imported the yum repos for a release of OpenManage and noticed there is
    a newer release, how do I upgrade OpenManage on my registered systems?

 A. If you are using version 1.0.2 or later, then you can import more than one
    version of the OpenManage repos into your Satellite or Spacewalk server, and
    then add the new channel to your registered system to perform an upgrade:

    # /opt/dell/srvadmin/sbin/srvadmin-services.sh stop
    # yum -y upgrade
    # /opt/dell/srvadmin/sbin/srvadmin-services.sh start

    If you are using version 1.0.1 or earlier, then the only way to upgrade OMSA
    is to remove the old channels ("--delete" option) and import the
    repositories for the newer OMSA release.

    Dell-satellite-sync 1.0.2 has a new feature that adds the OMSA version to
    the OMSA channel name and label, which allows registering a server to more
    than one OMSA channel (and thus allowing package upgrades).

 Q. I imported the repositories from http://linux.dell.com/repo/hardware/latest,
    and I can see the channels listed in my satellite server, but it's not
    syncing any packages, it tells me there are 0 packages listed. What's wrong?

 A. After the channels are created, dell-satellite-sync attempts to initiate a
    sync with the defined repository. If it's not populating the channels with
    packages, there is a communication issue with the remote repository. Things
    to check for include:

    * Can you resolve linux.dell.com or the server where the repositories are
      being synced from?
    * Do you have a proxy server that's causing issues?
    * Is there a firewall? Port 80/TCP should be the only requirement.
    * Can you initiate a manual sync? Go to the 'Channels' tab and select:
      Manage Software Channels -> [Click on Channel] -> Repositories -> Sync ->
      Sync Now

 If you are still having issues, send a note to the [email protected]
 mailing list with your specific question.

 Known Issues
 ============

 * The check_url() function may not be 100% effective.

   This function is used to check the existance of remote repositories. If a
   repository doesn't exist, it ignores the request. Useful when asking for
   RHEL 6 x86 repositories, which are not available from Dell. When check_url()
   returns a false positive and it creates a channel and repository which will
   never be populated with packages (since they don't exist) the only way to
   undo this is to manually remove the channels and repositories from RHN, or
   re-run dell-satellite-sync with the "--delete" option.

   Update 11/08/2013 - Switched to urllib2 library which appears to be more
   effective in detecting if remote http site exists, especially when going
   through a proxy server.

 * Importing GPG keys in RHEL 5

   This issue applies only if you are using --client-actions-only.

   Starting with RHEL 5.9, there is an issue when trying to import a GPG key
   over http:

   # rpm --import http://linux.dell.com/repo/hardware/latest/RPM-GPG-KEY-dell
   error: http://linux.dell.com/repo/hardware/latest: import read failed(-1).

   A workaround is to manually download the RPM-GPG-KEY-dell and
   RPM-GPG-KEY-libsmbios files on your client systems and then import the keys:

   # wget http://linux.dell.com/repo/hardware/latest/RPM-GPG-KEY-dell
   # wget http://linux.dell.com/repo/hardware/latest/RPM-GPG-KEY-libsmbios
   # rpm --import RPM-GPG-KEY-dell
   # rpm --import RPM-GPG-KEY-libsmbios

 Getting Involved
 ================

 Access to the git tree is available at:

 $ git clone https://github.com/jose-delarosa/dell-satellite-sync

 For code contributions please submit a pull request. For other development
 queries please send an email to the mailing list [email protected].

 To-Do List
 ==========

 * Add support for RHEL 7
 * Add option to specify architecture of channels (i386/x86_64) desired.
 * Add option to re-sync all repositories, for the case when channels and
   corresponding repositories were created, but package sync failed for some
   reason.
 * Add logging options.

 Author
 ======

 * This tool was written by Vinny Valdez <[email protected]>
 * Updates by Jose De la Rosa <[email protected]>, Scott Collier
   and Brian Collins <[email protected]>

 History
 =======

 * Please refer to https://github.com/jose-delarosa/dell-satellite-sync/commits

dell-satellite-sync's People

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

aes512 vvaldez

dell-satellite-sync's Issues

RHEL7 rpm

Hi

There is no way to pull for RHEL7 only 5/6. Can this be added?

Thank you!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.