Open Computer and Software Inventory

download Open Computer and Software Inventory

If you can't read please download the document

Transcript of Open Computer and Software Inventory

OCS-INVENTORY-NG

B.A. n.v.Lieven De Puysseleir

OCS INVENTORY NGOpen Computer and Software Inventory Next Generation

http://www.ocsinventory-ng.org

WAT?

Opensource (GPLv2 licentie) tool.

Overzicht van hardware op het netwerk.

Uitrollen van software, scripts, bestanden.

Overzicht geinstalleerde software.

OCS Inventory NG

Installatie server

Werkt op heel veel Operating Systems.

BSD, Solaris, osX, AIX, ...

Windows 2000 server, XP Pro, ...

Debian, RedHat, CentOS, Ubuntu,

Volledige lijst op de site van otrs: http://www.ocsinventory-ng.org/index.php?page=Supported_OS

De agent kan op allerlei clients geinstalleerd worden, gaande van windows 95 t.em. Windows 7 beta en zowat all versies van linux. (gezien het opensource is kan je natuurlijk altijd zelf compileren.)

De server

Database server

Communicatieserver

Administration console

Deployment server

Overzicht

Database Server

De database server bewaart de gegevens, de inventory dus.

Momenteel wordt enkel MySQL met InnoDB engine ondersteund.

Versie mysql >= 4.1

Communication Server

De communicatieserver beheert de verbinding tussen de agents (geinstalleerd op de clients) enerzijds en de database server anderzijds.

Deze draait op Apache

Versie 1.3.X

Versie 2.X

Geschreven in Perl als een Apache module om performance redenen. (wordt gecompileerd bij de start van Apache en niet bij elke request.)

Administration Console

De console voor de administratie laat de beheerder(s) toe om de database te raadplegen.

Kan beheerd worden m.b.h.v. allerlei browsers zoals IE, Firefox, Safari, ...

Werd geschreven in PHP4.1

Draait op Apache 1.3.X en 2.X

Deployment Server

De Deploymentserver neemt het uitrollen van 'packages' voor zijn rekening.

Deze bewaard hiervoor de nodige configuraties.

Waarop draait het? Eender welke webserver die SSL ondersteund. (https)

2 scenario's

Alle 4 de onderdelen kunnen op eenzelfde server geinstalleerd worden.

Om overbelasting van de server te voorkomen kan OCS ook uitgesplitst worden over verschillende servers.

2 scenario's

Meer dan 10000 computers te inventariseren?Probeer de installatie uit te splitsen over 2 of meer fysieke machines.

Database en communicatieserver op 1 machine.

Administratie en deployment server, alsook een replica van de database op de ander.

Aan te raden is om dit op Linux te doen want de versie voor Windows komt als 1 installatiepakket.

Hoe installeren?

Er is zeer bruikbare documentatie te vinden op de site van OCS Inventory NG.

Goede wiki met howto's en tools.

Voor een aantal Linux distro's zijn er binary packages beschikbaar, deze kan je dus met je vertrouwde package manager installeren.Apt-get / Aptitude

Yum / RPM

Hoe installeren?

Hou wel rekening met de dependencies

Een uitgebreide lijst met benodigde modules en software kan je wederom vinden op de site.

Er zijn o.a. een aantal perl en php modules nodig.

Installatie

De nieuwste versie is steeds beschikbaar op de website.Deze kan je na het downloaden installeren door het setup.sh script uit te voeren. (denk vooraf aan de vereiste paketten)

Initiele configuratie

Configuratie en aanmaken van de database:http:///ocsreports/install.php(root wachtwoord voor mysql nodig)Een mysql user ocs moet aangemaakt worden.Tijdens de configuratie

Eventueel rechtstreeks in mysql. (phpmyadmin)

Deze wordt gebruikt door administratie- en communicatieserver.

Eindelijk

Als het systeem geinstalleerd is kan je aanloggen met de admin user. (std ww admin)http:///ocsreports

Om af te sluiten kan je een TAG invoeren, bij de installatie van de agent op de clients wordt dan gevraagd een tag in te geven. Deze kan je later gebruiken om computers te sorteren.

configuratie

Loglevel

logging aan/uit/var/log/ocsinventory-NGProlog_freq

Inventory frequentie (agent)auto_duplicate_lvl

Criteria voor duplicatessession_validity_time

Sessie duur (niet 0)

configuratie

DEPLOY: aan indien u de agents via de server wil uitrollen.

DOWNLOAD: aanzetten om software te kunnen uitrollen.

Agents

Hoe werkt het:De agent contacteert de communication server en vraagt of er iets moet gebeuren.Niets

Inventory sturen

Network discovery

Software deployment

Linux Agents

Download de agent van de ocs site en installeer met het setup.sh script of gebruik je package manager. (apt-get install ocsinventory-agent)HTTP => inventory wordt naar de server gestuurd

LOCAL => er worden ocs-gecomprimeerde xml bestanden gemaakt die je manueel kan importeren via de management server.

Windows Agents

2 mogelijkheden:Als service (aanbevolen)

Standalone (vb bij offline pc's)

Installatie:ocsagent.exe voor standalone /local = geen cnx naar server

ocsagentsetup.exe voor service

ocslogon.exe installeert de agent vanaf de communication server of voert agent uit indien die al is geinstalleerd. (hernoem naar com server ip of dnsnaam)/INSTALL => installeer service versie

Geen switch => standalone versie

ocslogon.exe

Kan uitgevoerd worden doorLogin script

GPO

De standalone agent of een ingepakte versie van de service agent moeten beschikbaar zijn op de communication server.Je gebruikt ocspackager om een installatiepakketje te maken van de ocsagentsetup.exeHttps certificaat nodig

agentsetup.exe (best altijd de laatste versie)

Agent package creatie

OcsPackager.exe

Volg de wizardCommandline opties: /server:

/pnum:

/S (silent)

Local of domain admin

Upload naar de server

Agent ini file

De Agent contacteert de server om de zoveel uur.Dit wordt bijgehouden in service.ini.[OCS_SERVICE]

NoProxy=1

Server=my-ocs-server.domain.tld

Pnum=80

Miscellaneous=/DEBUG /NP /server: my-ocs-server.domain.tld /pnum:80

PROLOG_FREQ=10

OLD_PROLOG_FREQ=10

TTO_WAIT=1505

Agent force contact

Als je op de client ben kan je die forceren om de server te contacteren. Stop de ocs inventory service

Ga naar C:\Program Files\OCS Inventory Agent\

Open service.ini

TTO_WAIT=1

Sluit bestand en start de service

Agent LOG

Network Discovery

Sommige agents scannen het netwerk en geven deze info door aan de management server.

Enkel lan/subnet wordt gescand

Routers, printers en andere client-less devices worden gevonden.

IPDISCOVERY in de client/agent log:

PACKAGE DEPLOYMENT

Software uitrollen?

Gebruik steeds de service agent!

Standalone geeft problemen

Download pakket duurt heel lang

DEPLOYMENT

4 eigenschappen:

Prioriteit => 0 10 (prio 0 wordt eerst uitgevoerd)

Actie

Actie optioneel: zip/tar.gz bestand uitrollen

Actie optioneel: commando uitvoeren

ACTIE

Volgende acties zijn mogelijk:

Launch = bestand overzetten, uitpakken op de client in tmp directory + uitvoeren bestand uit het pakket.

Execute = eventueel bestand overzetten en commando uitvoeren dat wel of niet in het pakket zat, je kan iets uitvoeren wat al eerder op de client werd geinstalleerd.

Store = gecomprimeerd bestand overzetten en uitpakken.

Alle bestanden/folders moeten gecomprimeerd worden aangeboden.

Hoe?

Je maakt de package aan in de admin console.Het bestaat uit volgende onderdelen (automatisch proces)

DB REFERENTIE: de comm server vraagt de agent iets te downloaden

XML INFO FILE: beschrijft de actie die de agent moet uitvoeren

PAKKETJES: het bestand werd opgedeeld in kleine pakketjes om downloaden door de agent te vergemakkelijken.

SSL

Belangrijk om weten bij het uitrollen van software:

De info bestanden moeten op een ssl beveiligde webserver staan. (Wie deze bestanden heeft kan immers eender wat uitvoeren op de clients)

Serverkant: server.crt & server.keyClient side: cacert.pem

Download folder

De Packages die je gaat maken via de console worden opgeslagen waar de clients ze kunnen afhalen, default /var/www/download/

In de config van apache is dit een alias naar /var/lib/ocsinventory-reports/download/

Activatie

De gemaakte pakketjes moet je eerst activeren voor je ze kan gebruiken.

Default staan de files op de administration server.

Verplaats de bestanden naar een andere server die je als deployment server wil gebruiken. (rsync, ...)

Multi-site deployment

Het is mogelijk om per geografische site een locale server te hebben die de pakketjes bijhoudt Terwijl er slechts 1 communication server de INFO bestandjes centraliseert.

AFFECT

Als het software-pakket klaar is kan je het uitrollen naar clients in het netwerk.

Dit heet AFFECT in ocs inventory.Affect per client

ofMassaal uitrollen

MASS DEPLOYMENT

In plaats van een computer te selecteren en daarop de package te affecteren kan je dit ook met een reeks clients.

Lijst de gezochte computers op.

Ga naar mass processing

Klik deploy

groepen

Je kan groepen aanmaken om de clients per categorie te ordenen.Op deze groepen kan je dan een config toepassen of een pakket uitrollen.

Hoe maak ik een static group?

Hoe maak ik een static group?

Dynamische groepen

Als je een groep wil waarin steeds alle computers zitten die aan bepaalde criteria voldoen. (bv alle pc's met explorer) doe je hetzelfde als voor een statische groep maar je vult een ander veld in:

Troubleshooting

Logfiles bevatten veel info:client/agent

server

Apache

Forum

Google

Database backup

Backup je database regelmatig

Bv: mysqldump ocsweb > / /var/backup/ocsweb.dump

Mysql heeft ook een replicatie functie.

Grote Omgevingen

Meerdere OCS management servers. (vb)

Per lan/geografische omgeving een management server.

Geen deployment over de wan.

Wel een master server met alle inventarissen.

Mysql heeft een database replicatie-functie. (fail-save)

Master inventory server

Vanaf OCS 1.0.2 is dit makkelijk.Instellen via web interface config (inventory files tab)

Rechtstreeks in /etc/apache2/conf.d/z-ocsinventory-server.conf

De apache-user (www-data) moet de ocs-bestanden kunnen wegschrijven in de opgegeven directory.

Instellingen master server in ocsinventory-injector.pl (meegeleverd met de tarbal)

Cronjob: ocsinventory-injector.pl => naar de master server.

GLPI

Gestionnaire Libre de Parc Informatiquehttp://www.glpi-project.org/wiki/doku.php?id=en:welcome

GLPI prereq.

GLPI installeer je in de root directory van apache: /var/www/glpi

De database moet je zelf aanmaken in mysql:

GLPI

Beheer van hardware en software

Ingebouwd ticket systeem

Automatische invoer vanuit OCS

AD & LDAP links voor authenticatie

...

GLPI OCS

Link GLPI aan de OCS

SUPPORT

WEBSITE: http://ocsinventory-ng.org/

WIKIFORUMDOCU

Bij ons: [email protected]

Muokkaa otsikon tekstimuotoa napsauttamalla

Muokkaa jsennyksen tekstimuotoa napsauttamallaToinen jsennystasoKolmas jsennystasoNeljs jsennystasoViides jsennystasoKuudes jsennystasoSeitsems jsennystasoKahdeksas jsennystasoYhdekss jsennystaso

IPDISCOVER: function required by HTTP server...IPDISCOVER: Scanning to detect IP enabled hosts for the given network number: 192.168.250.0 with 100 ms between each requestIPDISCOVER: Computer found: IP:192.168.250.1 MAC:00:50:56:C0:00:08 NAME:192.168.250.1IPDISCOVER: Computer found: IP:192.168.250.2 MAC:00:50:56:E8:5B:10 NAME:192.168.250.2IPDISCOVER: Computer found: IP:192.168.250.128 MAC:00:0C:29:79:85:12 NAME:192.168.250.128IPDISCOVER: Computer found: IP:192.168.250.129 MAC:00:0C:29:5B:1E:45 NAME:192.168.250.129IPDISCOVER: Computer found: IP:192.168.250.130 MAC:00:0C:29:34:B6:FA NAME:aapekraam.altea-belgium.localIPDISCOVER: Computer found: IP:192.168.250.254 MAC:00:50:56:E1:E2:00 NAME:192.168.250.254IPDISCOVER: waited 660 mseconds for the threads to dieIPDISCOVER: NETWORK scan finished, 6 hosts found, 255 scanned

WMI Connect: Trying to connect to WMI namespace root\cimv2 on device ...OK.Registry Connect: Trying to connect to HKEY_LOCAL_MACHINE on device ...OK.CHECKINGS: read and in ocsinventory.datIpHlpAPI GetNetworkAdapters...IpHlpAPI GetNetworkAdapters: Calling GetIfTable to determine network adapter properties...OKIpHlpAPI GetNetworkAdapters: Calling GetAdapterInfo to determine IP Infos...OKIpHlpAPI GetNetworkAdapters: OK (4 objects).CHECKINGS: write and in ocsinventory.datHTTP SERVER: Creating CInternetSession to get inventory parameters...OK.HTTP SERVER: Getting HTTP Connection to server 192.168.250.128 port 80 using no authentication...OK.HTTP SERVER: Sending prolog query...HTTP status 200 OKOK.HTTP SERVER: Receiving prolog response...OK.DOWNLOAD: Working directory already existsDOWNLOAD: Package history file cleaning not requiredDOWNLOAD: Info file for package 1257935425 is located at : 192.168.250.128:443/downloadDOWNLOAD: SSL Connection opened...OK (pack 1257935425)DOWNLOAD: Retrieve info file...OK (pack 1257935425)DOWNLOAD: SSL Connection closed...OK (pack 1257935425)PROLOG FREQ was set to 1HTTP SERVER: Inventory requested by serverHTTP SERVER: Closing HTTP connectionRetrieving Device informations...getUserName: Trying to get logged on User ID...getUserName: Will using Process32...OKUser found (explorer): baIT.Registry NT GetLastLoggerUser: Trying to get the last user who'd been logged in...OK (bait).WMI GetOS: Trying to find Win32_OperatingSystem WMI objects...OK (Microsoft Windows XP Professional 5.1.2600 Service Pack 3 1 ).WMI GetDomainOrWorkgroup: Trying to find Win32_ComputerSystem WMI objects...OK (altea-belgium.local)Registry NT GetDomainOrWorkgroup...OK (ALTEA-BELGIUM).WMI GetBiosInfo: Trying to find Win32_ComputerSystem WMI objects...OK (VMware, Inc. VMware Virtual Platform)WMI GetBiosInfo: Trying to find Win32_SystemEnclosure WMI objects...OK (VMware, Inc. VMware Virtual Platform None 1)WMI GetBiosInfo: Trying to find Win32_Bios WMI objects...OK (Phoenix Technologies LTD N/A VMware-56 4d 74 ec b3 69 e3 a9-58 52 f8 1e 6f 34 b6 e6)WMI GetProcessors: Trying to find Win32_Processor WMI objects...Intel(R) Pentium(R) Dual CPU T3200 @ 2.00GHz 1999 (x86 Family 6 Model 15 Stepping 13). OKWMI GetProcessors: 1 processor(s) found.getMemory...Physical: 335659008 bytes, Swap: 712368128 bytes. OKWMI GetMemorySlots: Trying to find Win32_PhysicalMemory WMI objects...OK (2 objects)WMI GetMemorySlots: Trying to find Win32_PhysicalMemoryArray WMI objects...OK (4 objects updated)WMI GetInputDevices: Trying to find Win32_Keyboard WMI objects...OK (1 objects)WMI GetInputDevices: Trying to find Win32_PointingDevice WMI objects...OK (3 objects)WMI GetInputDevices: OKWMI GetSystemPorts: Trying to find Win32_SerialPort WMI objects...OK (2 objects)WMI GetSystemPorts: Trying to find Win32_ParallelPort WMI objects...OK (1 objects)WMI GetSystemPorts: OKWMI GetSystemSlots: Trying to find Win32_SystemSlot WMI objects...OK (7 objects)WMI GetSystemControllers: Trying to find Win32_FloppyController WMI objects...OK (1 objects)WMI GetSystemControllers: Trying to find Win32_IDEController WMI objects...OK (3 objects)WMI GetSystemControllers: Trying to find Win32_SCSIController WMI objects...Failed because no Win32_SCSIController object !WMI GetSystemControllers: Trying to find Win32_InfraredDevice WMI objects...Failed because no Win32_InfraredDevice object !WMI GetSystemControllers: Trying to find Win32_USBController WMI objects...OK (2 objects)WMI GetSystemControllers: Trying to find Win32_1394Controller WMI objects...Failed because no Win32_1394Controller object !WMI GetSystemControllers: Trying to find Win32_PCMCIAController WMI objects...Failed because no Win32_PCMCIAController object !WMI GetSystemControllers: OKWMI GetStoragePeripherals: Trying to find Win32_FloppyDrive WMI objects...OK (1 objects)WMI GetStoragePeripherals: Trying to find Win32_DiskDrive WMI objects...OK (1 objects)WMI GetStoragePeripherals: Trying to find Win32_CDROMDrive WMI objects...OK (1 objects)WMI GetStoragePeripherals: Trying to find Win32_TapeDrive WMI objects...Failed because no Win32_TapeDrive object !WMI GetStoragePeripherals: OKWMI GetSoundDevices: Trying to find Win32_SoundDevice WMI objects...Failed because no Win32_SoundDevice object !Registry NT GetSoundDevices...Registry NT GetSoundDevices: OK (0 objects).WMI GetModems: Trying to find Win32_POTSModem WMI objects...Failed because no Win32_POTSModem object !Registry NT GetModems...Registry NT GetModems: Failed in call to function to find subkey of HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}.IpHlpAPI GetNetworkAdapters...IpHlpAPI GetNetworkAdapters: Calling GetIfTable to determine network adapter properties...OKIpHlpAPI GetNetworkAdapters: Calling GetAdapterInfo to determine IP Infos...OKIpHlpAPI GetNetworkAdapters: OK (4 objects).WMI GetPrinters: Trying to find Win32_Printer WMI objects...OK (3 objects)WMI GetVideoAdapters: Trying to find Win32_VideoController WMI objects...OK (1 objects)SetupAPI Connect: Trying to connect to SetupAPI on device ...OK.SetupAPI: Enumerating DISPLAY devices...SetupAPI: SetupDiGetClassDevs DISPLAY failed with error 13.SetupAPI: Enumerates DISPLAY devices finished (0 objects)...SetupAPI: Enumerating MONITOR devices...SetupAPI: SetupDiGetClassDevs MONITOR failed with error 13.SetupAPI: Enumerates MONITOR devices finished (0 objects)...SetupAPI Disconnect: Disconnected from SetupAPI.WMI GetMonitors: Trying to find Win32_DesktopMonitor WMI objects...OK (1 objects)WSA GetIPAddress...OK (192.168.250.130)WMI GetWindowsRegistration: Trying to find Win32_OperatingSystem WMI objects...OK (ba ba 76487-641-0829054-23400).Registry GetWindowsProductKey...OK (MFHXB-4T8QJ-PCCJ6-MMVFB-4BTT3).Registry NT GetRegistryApplications READING hive HKLM ... Registry NT GetRegistryApplications: OK (132 objects).Creating CXMLInteract object...OKTrying to open database on folder with XML...OK.Scanning Device's Logical Drive(s) for informations and softwares...Getting Logical Drive properties...OKGetting Logical Drive properties...OKGetting Logical Drive properties...OKReading last inventory state file...XML Read last inventory state from file ...OKIPDISCOVER: function required by HTTP server...IPDISCOVER: Scanning to detect IP enabled hosts for the given network number: 192.168.250.0 with 100 ms between each requestIPDISCOVER: Computer found: IP:192.168.250.1 MAC:00:50:56:C0:00:08 NAME:192.168.250.1IPDISCOVER: Computer found: IP:192.168.250.2 MAC:00:50:56:E8:5B:10 NAME:192.168.250.2IPDISCOVER: Computer found: IP:192.168.250.128 MAC:00:0C:29:79:85:12 NAME:192.168.250.128IPDISCOVER: Computer found: IP:192.168.250.129 MAC:00:0C:29:5B:1E:45 NAME:192.168.250.129IPDISCOVER: Computer found: IP:192.168.250.130 MAC:00:0C:29:34:B6:FA NAME:aapekraam.altea-belgium.localIPDISCOVER: Computer found: IP:192.168.250.254 MAC:00:50:56:E1:E2:00 NAME:192.168.250.254IPDISCOVER: waited 660 mseconds for the threads to dieIPDISCOVER: NETWORK scan finished, 6 hosts found, 255 scannedChecking last inventory state...No change since last inventory.XML Update Device properties...XML Update Memory Slots: OK (4 objects).MEM: Set to 320 (instead of 320)XML Update Logical Drives...XML Update Logical Drives: OK (3 objects).XML Update Input Devices...XML Update Input Devices: OK (4 objects).XML Update Modems: OK (0 objects).XML Update Monitors: OK. (1 objects).XML Update Network Adapters: OK (4 objects).XML Update System Ports: OK (3 objects).XML Update Printers...XML Update Printers: OK (3 objects).XML Update Registry Values...XML Update Registry Values: OK (0 objects).XML Update Softwares...XML Update Softwares: OK (133 objects).XML Update Sound Devices...XML Update Sound Devices: OK (0 objects).XML Update Storage Peripherals...XML Update Storage Peripherals: OK (3 objects).XML Update System Controllers...XML Update System Controllers: OK (6 objects).XML Update System Slots...XML Update System Slots: OK (7 objects).XML Update Video Adapters...XML Update Video Adapters: OK (1 objects).XML Update Device properties: OK.WMI Disconnect: Disconnected from WMI namespace.HTTP SERVER: Creating CInternetSession to send inventory results...OK.HTTP SERVER: Getting HTTP Connection to server 192.168.250.128 port 80 using no authentication...OKHTTP SERVER: INV : SEND received, sending inventory...HTTP status 200 OKOK.HTTP SERVER: INV : no account info updateHTTP SERVER: Closing HTTP connection....OK.Writing last inventory state file...XML Write new inventory state to file ...OKExecution duration: 00:00:40.