We use a system of scripts called =admchange= to coordinate changes. The idea is to provide a mechanism to keep various admins (in different locations, and with different types of reachability) from bumping into each other. ---++ Documentation ---+++ Name * =admchange= - control changes by system administrators * =startchange= - begin a large change, with locking * =endchange= - end a large change, releasing lock * =logchange= - log a note about a smaller change ---+++ Synopsis =*change [-b] [-e] [-m message]= ---+++ Purpose Helps keep track who is making changes to the system at any given time, and preven collisions of same. Maintains a changelog to keep a record of these changes over time. ---+++ Usage Operation being performed is determined by the name the script is called as. Intent is for links to be made to master =admchange= script. Do not call as =admchange= directly. In all three modes, the user provides a message to describe the change. Defaults to prompting using =readline= for input, RCS-style. Will use your =$EDITOR= or =/bin/vi= instead if you call this script with =-e= option. Can also specify a message as an argument using =-m= option (useful for short one-liners, e.g., =logchange -b -m 'restarted apache'=). The message is recorded in the change log and broadcast using =wall=. The =-b= option suppresses the wall broadcast. Call as =startchange= to begin a large change. A "large change" is one which will take some time to finish, during which time other admins should not make changes. This establishes a lock to prevent another =startchange= from being started before =endchange= is called. The message entered is also added to =/etc/motd= to alert any new logins. Call as =endchange= to signal the end of a change begun with =startchange=, and release the lock. Restores =/etc/motd= as well. Call as =logchange= to log a minor change which doesn't need to be guarded by locking. This does not touch =/etc/motd= at all. Can be used while =startchange= is in effect (useful for checkpoint logging). ---++ Discussion Use the =startchange= and =endchange= scripts in =/usr/local/adm=. I was going to include Mike Ledoux's instructional message in here, but I can't find it in the archives! -- Main.BruceDawson - 23 Feb 2006 That's because I never wrote one. I described a method that I thought would work to control access, then quickly wrote the scripts to do it and sent them up to the server. Usage is simple, really, just run =startchange= as yourself before making any changes, then run =endchange= when you are done. The scripts will prompt you for a log message (reading from stdin, redirection works fine; or use the =-e= option to fire up a real editor) then do all the magic for you. -- Main.MikeLedoux - 27 Feb 2006 The scripts have been combined into one multi-call script, and some functionlity added. The script and links now live =/usr/local/adm/bin/= with data files in =/usr/local/adm/changes/=. There is a =logchange= script one can run to record notes on a change that didn't need the start/end guarding. See the source for details. -- Main.BenScott - 03 Apr 20 The script keeps getting tweaked to add (creeping) features. I attached the latest version of the =admchange= script to this page, in case others might find it useful. The source is fairly well-commented, with usage instructions at the top. Share and enjoy! -- Main.BenScott - 21 May 2006
Attachments
Attachments
Topic attachments
I
Attachment
History
Action
Size
Date
Who
Comment
ext
admchange
r1
manage
8.3 K
2006-05-20 - 21:18
BenScott
administrator change control script
This topic: Org
>
WebHome
>
InternetServer
>
ServerCoordination
>
ServerChangeControl
Topic revision: r6 - 2023-12-13 - BenScott
All content is Copyright © 1999-2024 by, and the property of, the contributing authors.
Questions, comments, or concerns?
Contact GNHLUG
.
All use of this site subject to our
Legal Notice
(includes Terms of Service).