Giter Club home page Giter Club logo

citrix_xenserver_patcher's Introduction

citrix_xenserver_patcher

Auto Patching tool for Citrix XenServer Boxes

Supports XenServer 6.0+ - designed primarily for 6.2+ where easy patch management via the GUI was removed for non-supported customers. This should allow individuals and the likes to patch their systems with ease.

Currently, this script is used directly on the Hypervisor itself (as root), and is tested working with both standalone nodes, and pools (must be run on the pool master!).

If there is a particular feature (or bug!) you want sorted, please feel free to raise an Issue here, and i'll look into it (or feel free to fork and commit fixes back!): https://github.com/dalgibbard/citrix_xenserver_patcher/issues

DISCLAIMER

Both myself and this code are in no way affiliated with Citrix. This code is not supported by Citrix in any way. Use of the code within this project is without warranty, and neither myself, the company I work for, nor other contributors of this project are to blame for any issues which may arise, and therefore cannot be held accountable. Any use of this code is done so at your own risk.

Anyway; enough of the nasty stuff.

How To Use

  • SSH to your XenServer Host (Use PuTTY if using a Windows PC).
  • Ensure you're logged on as the "root" user.
  • Get the XenServer Patcher Script
  • Set the permissions as executable
  • OPTIONAL: Create your own exclusions file. (Exclusions will be loaded from Github, but feel free to produce your own list too.)
  • Run it!
wget --no-check-certificate -O patcher.py https://raw.github.com/dalgibbard/citrix_xenserver_patcher/master/patcher.py
chmod a+x patcher.py

# Standalone node:
./patcher.py

# Pool Master node:
./patcher.py -p
  • Run the patcher, and follow the prompts :)

A Note On Exclusions

Exclusions are necessary, particularly when Citrix release a Service Pack update which combines previously released patches (be sure to check the "to-be-installed" list for any "SP" patches, and report them if they're new!)

Exclusions are defined in two different ways, which can be utilised together, or individually.

Auto Exclusions

Automatic Exclusions are automatically loaded in via the internet (calls back to this project, to the files located within the 'exclusions' directory of this project). Please raise an issue, or raise a pull request with appropriate changes if you find anything to be wrong/missing. Auto-Exclusions can be DISABLED by using the -E flag, like so:

## NOTE: ** NOT RECOMMENDED! **
./patcher.py -E

Local / Manual Exclusions

If you want to define your own list of patches to exclude (example: the patcher is showing you a new patch file which you're not ready for yet), you can do so by providing the -e argument, and an appropriately formatted file. For an example of how this file should be formatted; see: exclusions/local_exclusions_example.py

Example on using this flag:

## Use a manual exclusions file, in _addition_ to the Auto-Exclusions file on Github:
./patcher.py -e /path/to/exclusions_file.py

## Use ONLY the manual exclusions file:
./patcher.py -E -e /path/to/exclusions_file.py

Usage:

  • The code supports a few other arguments too:
Usage: ./patcher.py [-p] [-e /path/to/exclude_file] [-E] [-a] [-r] [-l] [-D] [-C] [-v]

-p                          => POOL MODE: Apply Patches to the whole Pool. It must be done on the Pool Master.
-e /path/to/exclude_file    => Allows user to define a Python List of Patches NOT to install.
-E                          => *Disable* the loading of auto-exclusions list from Github
-a                          => Enables auto-apply of patches - will NOT reboot host without below option.
-r                          => Enables automatic reboot of Host on completion of patching without prompts.
-l                          => Just list available patches, and Exit. Cannot be used with '-a' or '-r'.
-D                          => Enable DEBUG output
-C                          => *Disable* the automatic cleaning of patches on success.
-v                          => Display Version and Exit.

Tags: XenServer Citrix Patch Patching Patcher Auto-Patcher Autopatcher Xen Server Python

citrix_xenserver_patcher's People

Contributors

dalgibbard avatar dgibbard-cisco avatar jcharaoui avatar mf avatar darrellenns avatar

Watchers

James Cloos avatar Anil Mainali avatar

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.