aboutsummaryrefslogtreecommitdiffstats
path: root/README
blob: ecdd14f9d13c0ea180cbb837b1cc306186ae3030 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
 Introduction 
 ============

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

 For additional information visit http://linux.dell.com/dell-satellite-sync.
 For information on the OM 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-system.ven_0x1028.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 OM child channels. This list was last updated
 on Oct 10, 2012. If you have a 12G PowerEdge server that started shipping after
 this date, check for the latest updated file in
 http://linux.dell.com/dell-satellite-sync, otherwise 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 a mirror as well.

 * 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 OM
    is to remove the old channels ("--delete" option) and import the repositories
    for the newer OM release.

    Dell-satellite-sync 1.0.2 has a new feature that adds the OM version to the
    OM channel name and label, which allows registering a server to more then one
    OM 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 linux-poweredge@dell.com
 mailing list with your specific question.

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

 * The check_url() function may not 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
 ================

 Read-only access to the git tree is available at:

 $ git clone http://linux.dell.com/git/dell-satellite-sync.git

 For further development queries or if you'd like to make code contributions,
 please send an email to the mailing list linux-poweredge@dell.com.

 Future Enhancements
 ===================

 * 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 <vvaldez@redhat.com>
 * Updates by Jose De la Rosa <jose_de_la_rosa@dell.com>, Scott Collier
   and Brian Collins <brianc@sedata.com>

 History
 =======

 * Wed Nov 13 2013 Jose De la Rosa <jose_de_la_rosa@dell.com> 1.0.2-1
 - Added OpenManage version in channels to be able to support OM upgrades.

 * Fri Nov 8 2013 Jose De la Rosa <jose_de_la_rosa@dell.com> 1.0.1-1
 - Replaced check_url function to verify if desired yum repo exists.

 * Mon Jan 28 2013 Jose De la Rosa <jose_de_la_rosa@dell.com> 1.0.1-1
 - Fixed bug when deleting child repo channels.
 - Fixed API compatability issue with RHN 5.4.1 (channel.software.removeRepo).
 - Added system ID for dx6004s.

 * Tue Oct 16 2012 Jose De la Rosa <jose_de_la_rosa@dell.com> 1.0.0-1
 - Major clean up for simpler use
 - Added configuration files in /etc/sysconfig/dell-satellite-sync/
 - Replaced rhnpush with API calls to create RHN repo & associate to channel.
 - Removed requirement to copy all repositories to a local directory.
 - It no longer imports all system-specific repositories by default.
 - Added --channel option to specify the OS parent channel to use.
 - Removed rsync option since its functionality is better suited separately.
 - Removed --all option since now only Dell systems can be subscribed.
 - Removed --gpg-url option since GPG keys are now imported from same place as
   the repo location.
 - Removed --force option since I no longer use rhnpush to upload packages to
   the RHN server.
 - The --delete option removes all unused RHN repositories and channels

 * Wed Nov 30 2011 Jose De la Rosa <jose_de_la_rosa@dell.com> 0.4.5-1
 - Added support for SUSE Manager 1.2

 * Tue Nov 8 2011 Jose De la Rosa <jose_de_la_rosa@dell.com> 0.4.4-1
 - Tested with Spacewalk 1.5 and fixed some typos

 * Wed Nov 10 2009 Vinny Valdez <vvaldez@redhat.com> 0.4.3-1
 - Expanded man page with synopsis, examples, bugs

 * Sun Nov 8 2009 Scott Collier <boodle11@gmail.com> 0.4.2-1
 - created the man page

 * Wed Nov 7 2009 Vinny Valdez <vvaldez@redhat.com> 0.4.1-1
 - Fixed timeout values from 0.4, which were not sane
 - Added abort but report success/failed clients if Ctrl+c or 2 hour timeout
 - Fixed some output on client result waiting to clean it up

 * Wed Nov 5 2009 Vinny Valdez <vvaldez@redhat.com> 0.4-1
 - Added options "--rhel5-only" and "--rhel4-only" to work around a bug in some
   of the Dell rpms that are being treated as the same in Satellite
 - Added option "--only-systems" that accepts a comma separated list of systems
   to rsync and create child channels for
 - Added package removal from Satellite in the channels with --delete now
 - Added --exclude-from list if --only-systems is specified
 - Added --repo to specify a specific repo to pull from
 - Added timestamps to output
 - Fixed bug with --debug mode in version 0.3

 * Tue Oct 30 2009 Vinny Valdez <vvaldez@redhat.com> 0.3-1
 - Cleaned up some output on the client side actions
 - Added "raise" statement if using debug in some cases
 - Added summary of client actions at end of process
 - Added try/except on importing modules

 * Tue Oct 27 2009 Vinny Valdez <vvaldez@redhat.com> 0.2-1
 - Initial package created from version 0.2 of the source script