maintenance:general:os-repository
LDAP: couldn't connect to LDAP server
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
maintenance:general:os-repository [2022/04/11 08:28] – yspeerte | maintenance:general:os-repository [2022/04/13 08:51] (current) – [Device types] yspeerte | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== OS-Repository setup ====== | ||
+ | |||
+ | The NetYCE OS-Repository is intended to provide a centralized storage and maintenance facility of networking device Operating-system related files. | ||
+ | |||
+ | The repository consists of two parts. First of all the disk-space where the files are stored and monitored is part of the file-transfer directory tree of the application which allows all your devices access using all common protocols (scp, sftp, ftp, tftp). This disk space is shared using Network File System (NFS) among all NetYCE servers (or any Unix based server) to act as a distributed disk-share without duplication of files. Active monitoring of all file activity (adding, updating, moving, deleting) will automatically adjust the OS repository to reflect these changes. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Secondly, the user front-end form, which can be found under ' | ||
+ | |||
+ | {{: | ||
+ | Details can be found in the [[menu: | ||
+ | |||
+ | Finally, a couple of Scenario commands were added to locate image files in the repository for use in OS upgrade scenarios. These commands will also allow access to the meta-data of each file-set to simplify copy and activation actions. | ||
+ | |||
+ | Details van be found in the [[guides: | ||
+ | |||
+ | This document details the setup and operation of the OS-Repository. | ||
+ | |||
+ | |||
+ | ===== OS repository setup ===== | ||
+ | |||
+ | The OS-Repository is enabled and configured from the cli (ssh session) using the **'' | ||
+ | |||
+ | When stepping though the various setup sections, the OS-repository section follows the database-server mapping section. It will show the current configuration before prompting to change the settings as illustrated below for two cases. | ||
+ | |||
+ | < | ||
+ | OS-repository is disabled | ||
+ | Repository clients: | ||
+ | 1) genesis (*) | ||
+ | | import-dir | ||
+ | | ||
+ | No external clients | ||
+ | local server is marked with (*) | ||
+ | Update OS-repository settings? | ||
+ | </ | ||
+ | |||
+ | < | ||
+ | OS-repository is enabled | ||
+ | Repository host: genesis (*) | ||
+ | | ipv4 | ipv6 | ||
+ | | ||
+ | | export-dir | ||
+ | | ||
+ | Repository clients: | ||
+ | 1) devel7b | ||
+ | | import-dir | ||
+ | | ||
+ | No external clients | ||
+ | local server is marked with (*) | ||
+ | Update OS-repository settings? | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Prerequisites ===== | ||
+ | |||
+ | The OS-repository is supported on CentOS or RedHat 7.x | ||
+ | |||
+ | It requires the NFS packages to be installed. Use these or more recent versions: | ||
+ | < | ||
+ | nfs4-acl-tools-0.3.3-21.el7.x86_64 | ||
+ | nfs-utils-1.3.0-0.68.el7.2.x86_64 | ||
+ | libnfsidmap-0.25-19.el7.x86_64 | ||
+ | </ | ||
+ | |||
+ | For NetYCE servers, the OS-Repository path is fixed: **''/ | ||
+ | |||
+ | This path is part of the ''/ | ||
+ | This setup also enforces that all files are ' | ||
+ | |||
+ | |||
+ | ===== Example setup ===== | ||
+ | |||
+ | In the following example session the initial setup of a shared OS-repo on two NetYCE servers, '' | ||
+ | |||
+ | The OS-repo host should be setup first to activate the NFS export before trying to mount it as an import on other servers. | ||
+ | |||
+ | |||
+ | ==== Server ' | ||
+ | <WRAP indent> | ||
+ | Server netyceA has its OS-repo initially disabled. Enable it and define it as the OS-repo ' | ||
+ | |||
+ | < | ||
+ | OS-repository is disabled | ||
+ | Repository clients: | ||
+ | 1) netyceA (*) | ||
+ | | import-dir | ||
+ | | ||
+ | 2) devel7b | ||
+ | | import-dir | ||
+ | | ||
+ | No external clients | ||
+ | local server is marked with (*) | ||
+ | Update OS-repository settings? | ||
+ | enable shared OS-repository? | ||
+ | 1) netyceA (*) | ||
+ | 2) netyceB | ||
+ | 3) external system | ||
+ | select the repository ' | ||
+ | ' | ||
+ | ' | ||
+ | add external client(s) to the repository? [no] | ||
+ | no extern clients | ||
+ | Is the OS-repository setup correctly?: | ||
+ | |||
+ | </ | ||
+ | |||
+ | When continuing the setup script, the NFS export and import setup will be configured and activated. | ||
+ | |||
+ | < | ||
+ | -- Setup ' | ||
+ | | ||
+ | NFS import file '/ | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | ==== Server ' | ||
+ | |||
+ | <WRAP indent> | ||
+ | < | ||
+ | OS-repository is disabled | ||
+ | Repository clients: | ||
+ | 1) netyceA | ||
+ | | import-dir | ||
+ | | ||
+ | 2) netyceB (*) | ||
+ | | import-dir | ||
+ | | ||
+ | No external clients | ||
+ | local server is marked with (*) | ||
+ | Update OS-repository settings? | ||
+ | enable shared OS-repository? | ||
+ | 1) netyceA | ||
+ | 2) netyceB (*) | ||
+ | 3) external system | ||
+ | select the repository ' | ||
+ | ' | ||
+ | ' | ||
+ | Is the OS-repository setup correctly?: | ||
+ | |||
+ | </ | ||
+ | |||
+ | During the activation the NFS configuration files will be modified and the OS-repo is mounted. | ||
+ | |||
+ | < | ||
+ | -- Setup ' | ||
+ | NFS export file '/ | ||
+ | ' | ||
+ | | ||
+ | | ||
+ | | ||
+ | no os files found to migrate to OS-repository | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Migration ===== | ||
+ | |||
+ | As the OS-repo directory tree on this client server may already have some os-files installed, these must be moved to the new OS-repo ' | ||
+ | |||
+ | The files found in the OS-repo tree of the client will be copied to the corresponding vendor directory of the ' | ||
+ | |||
+ | This migration is implemented by renaming the '' | ||
+ | |||
+ | Files that already existed on the OS-repo of the ' | ||
+ | |||
+ | |||
+ | ===== External clients ===== | ||
+ | |||
+ | As the underlying fabric is NFS-based, any Unix/Linux server supporting nfs4 can partake as a OS-repo client (or host). During the NetYCE setup of the host server, a prompt asks for any external clients. Any number of clients can be added to access the OS-repository. | ||
+ | |||
+ | A sample session where the external client '' | ||
+ | |||
+ | < | ||
+ | OS-repository is enabled | ||
+ | Repository host: netyceA (*) | ||
+ | | ipv4 | ipv6 | ||
+ | | ||
+ | | export-dir | ||
+ | | ||
+ | Repository clients: | ||
+ | 1) netyceB | ||
+ | | import-dir | ||
+ | | ||
+ | No external clients | ||
+ | local server is marked with (*) | ||
+ | Update OS-repository settings? | ||
+ | enable shared OS-repository? | ||
+ | 1) netyceA (*) | ||
+ | 2) netyceB | ||
+ | 3) external system | ||
+ | select the repository ' | ||
+ | ' | ||
+ | ' | ||
+ | add external client(s) to the repository? [no] yes | ||
+ | external client name/ | ||
+ | |||
+ | The name of the external server entered here will be used as a label to identify | ||
+ | the server' | ||
+ | be granted based on the IPv4 and IPv6 addresses entered following this prompt. | ||
+ | |||
+ | external client name/ | ||
+ | ' | ||
+ | ' | ||
+ | external client name/ | ||
+ | Is the OS-repository setup correctly?: | ||
+ | |||
+ | </ | ||
+ | |||
+ | The update is shown in the activation: | ||
+ | < | ||
+ | -- Setup ' | ||
+ | | ||
+ | NFS import file '/ | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | The resulting ''/ | ||
+ | < | ||
+ | # | ||
+ | # Auto-generated / | ||
+ | # 2022-04-11 11:52:00 | ||
+ | # | ||
+ | # Extern os-repository client: unixc | ||
+ | / | ||
+ | # | ||
+ | # NetYCE os-repository client: netyceB - netyceb.right.netyce.org | ||
+ | / | ||
+ | / | ||
+ | # | ||
+ | </ | ||
+ | |||
+ | The '' | ||
+ | < | ||
+ | OS-repository is enabled | ||
+ | Repository host: netyceA (*) | ||
+ | | ipv4 | ipv6 | ||
+ | | ||
+ | | export-dir | ||
+ | | ||
+ | Repository clients: | ||
+ | 1) netyceB | ||
+ | | import-dir | ||
+ | | ||
+ | External clients: | ||
+ | 2) unixC | ||
+ | | ipv4 | ipv6 | ||
+ | | ||
+ | local server is marked with (*) | ||
+ | Update OS-repository settings? | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== External host ===== | ||
+ | |||
+ | If the OS-repository is not a NetYCE system or a NetYCE server from another NetYCE environment (like separate Production and Test environments), | ||
+ | |||
+ | < | ||
+ | OS-repository is disabled | ||
+ | Repository clients: | ||
+ | 1) netyceA | ||
+ | | import-dir | ||
+ | | ||
+ | 2) netyceB (*) | ||
+ | | import-dir | ||
+ | | ||
+ | No external clients | ||
+ | local server is marked with (*) | ||
+ | Update OS-repository settings? | ||
+ | enable shared OS-repository? | ||
+ | 1) netyceA | ||
+ | 2) netyceB (*) | ||
+ | 3) external system | ||
+ | select the repository ' | ||
+ | external repository host fqdn: [] ? | ||
+ | enter the fqdn of the external repository: | ||
+ | external repository host fqdn: [] unixc.netyce.org | ||
+ | external repository directory: | ||
+ | Is the OS-repository setup correctly?: | ||
+ | |||
+ | </ | ||
+ | |||
+ | At activation time the server will try to mount the external NFS OS-repository. If it fails, a notification is shown. | ||
+ | |||
+ | < | ||
+ | -- ' | ||
+ | -- Setup ' | ||
+ | NFS export file '/ | ||
+ | ' | ||
+ | | ||
+ | | ||
+ | -- FAILED: OS-repository on ' | ||
+ | </ | ||
+ | |||
+ | |||
+ | ===== Customization ==== | ||
+ | |||
+ | ==== File types ==== | ||
+ | |||
+ | <WRAP indent> | ||
+ | The OS-Repository can be customized to change or extend the different file-types. Using the 'Admin - Setup - Settings' | ||
+ | |||
+ | By default, five file-types are configured for **'' | ||
+ | |||
+ | ^ String-value | ||
+ | | unknown | ||
+ | | os-image | ||
+ | | boot-image | ||
+ | | license | ||
+ | | other | 4 | | ||
+ | |||
+ | The administration uses the numeric values, the string values are the translation for the user. Additional entries with their own number can be added or existing ones renamed. Note however, that the ' | ||
+ | |||
+ | It is possible to alter the values for the '' | ||
+ | </ | ||
+ | |||
+ | ==== Device types ==== | ||
+ | |||
+ | <WRAP indent> | ||
+ | Device types are used to identify the hardware to which an OS-image set applies. Vendors traditionally use many, many different formats to identify its hardware. Within a product-family hundreds of different names are in circulation, | ||
+ | |||
+ | Using this hardware identifier without modification in the OS-repository will easily result in a chaotic number of OS-image sets. | ||
+ | |||
+ | Therefore we have opted to provide a means to moderate the available Device types. You can either lock the Device types or keep them open. When locked, only the ' | ||
+ | |||
+ | This behaviour is controlled using the Tweak **'' | ||
+ | |||
+ | The Device types available, moderated or not, are maintained in their own database table, '' | ||
+ | |||
+ | An initial set of Device types was extracted from the available information already available in the YCE and CMDB databases, mostly relying on the '' | ||
+ | |||
+ | This initialization and extraction process can be repeated if desired by running the appropriate installation patch in force mode: | ||
+ | |||
+ | < | ||
+ | go patches | ||
+ | | ||
+ | </ | ||
+ | |||
+ | Result | ||
+ | < | ||
+ | Force mode enabled | ||
+ | [21102602] Re-applying YCE patch ' | ||
+ | [21102602] | ||
+ | [21102602] Done | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
maintenance/general/os-repository.txt · Last modified: 2022/04/13 08:51 by yspeerte