Community
    • Categories
    • Recent
    • Popular
    • Users
    • Search
    • Register
    • Login

    Entsorgung von Hardware

    Scheduled Pinned Locked Moved Betrieb
    21 Posts 3 Posters 3.0k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • T Offline
      ThomasH
      last edited by

      Hallo zusammen,

      wie geht man am sinnvollsten vor, wenn Hardware entsorgt wird?
      Wir haben unsere Geräte (Client, Monitor, Drucker, …) diversen Arbeitsplätzen zugeordnet. Tausche ich nun ein Gerät aus, da es defekt ist, gibt es verschiedene Möglichkeiten dies in i-doit abzubilden.

      1. ich suche das Gerät und nutze "Archivieren"
      2. ich ändere den CMDB-Status auf "verschrottet"

      Bei beiden Varianten bleibt das Gerät aber unter dem Arbeitsplatz sichtbar, was im Laufe der Zeit sicherlich unübersichtlich wird. Wie machen da andere? gibt es einen besseren Weg?

      Danke und viele Grüße
      Thomas

      1 Reply Last reply Reply Quote 0
      • creissC Offline
        creiss i-doit Kenner
        last edited by

        Hallo Thomas,

        genau für diesen Zweck habe ich ein Add-on entwickelt. Ursprünglich für einen Kunden aus dem Krankenkassenbereich. Damit lassen sich die fünf Stufen der Entsorgung abbilden:

        1. Einleiten der Entsorgung
        2. Fachliche Prüfung
        3. Sachliche Prüfung
        4. Ausbuchen aus der Anlagenbuchhaltung
        5. Entsorgung bei einem Diensleister

        Jeder Schritt kann einzeln verrechtet werden und wird im Logbuch des Objekts festgehalten. Dazu können auch mit Abschluss jedes Schritts Mails an die entsprechenden Personen versendet werden. Du kannst dir das gerne mal in meiner Demo unter http://i-doit.donamic.de/ mit admin/admin und dem Mandanten "i-doit Schulung" ansehen. Ich habe gerade mal zwei Beispiele für dich angelegt.

        Die Objekte können am Ende auch noch den Objekttypen wechseln und automatisch archiviert werden. Die Zuweisung zum Arbeitsplatz wird jedoch weiterhin vorhanden sein. Hier würde ich dann einen Report erstellen, der diese Konstellation (Entsorgt und trotzdem einem Arbeitsplatz zugeordnet) findet und mich darüber benachrichtigt, falls es vergessen wird. Ich nehme das aber zusätzlich noch als weiteres Feature für neue Versionen mit auf.

        Alternativ könntest du eventuell über Events und die API erreichen, dass wenn der CMDB-Status "Entsorgt" gesetzt wird (Hook), dass dann auch im Objekt die Zuweisung zum Arbeitsplatz gelöst wird (API). Ansonsten bleibt eigentlich nur die händische Änderung.

        Lieben Gruß
        Christian

        NEU - i-doit und IT-Dokumentation bei YouTube: https://www.youtube.com/@donamic_de
        Komplett-Strategie: https://i-doit-trainings.de/it-dokumentation-komplett-strategie/
        i-doit Mastery – https://i-doit-trainings.de/i-doit-mastery

        1 Reply Last reply Reply Quote 0
        • T Offline
          ThomasH
          last edited by

          Hallo Christian,

          den "Umweg" über ein eigenes Modul finde ich nicht so glücklich.
          Die Idee mit der API-Werde ich mir allerdings mal genauer anschauen. Das könnte gehen und mein Ziel erreichen.

          Danke für die Idee.
          Thomas

          1 Reply Last reply Reply Quote 0
          • T Offline
            ThomasH
            last edited by

            Hallo,

            gibt es eine Möglichkeit aus der Detailseite eines Objekts (z.B. Clients) das Objekt zu Archivieren?
            Versuche ich dort unter "Allgemein" den CMDB-Status auf "Archiviert" zu setzen, ist dieses nicht auswählbar.

            Ein Gerät nur aus einer Liste heraus anharken zu können und dann zu Archivieren finde ich ziemlich umständlich. Gibts da einfachere Möglichkeiten?

            In der Online-Demo gibt es zumindest die Schaltfläche "Archiviert", die ist allerdings ausgegraut.

            Viele Grüße
            Thomas

            1 Reply Last reply Reply Quote 0
            • creissC Offline
              creiss i-doit Kenner
              last edited by

              Hallo Thomas,

              nein, das ist aus dem Objekt heraus nicht möglich. Wenn du viele Objekte archivieren willst, geht das noch über die Massenänderung. Aber der funktionierende Weg ist doch viel effizienter als das, was du dir wünscht oder nicht?

              Der Weg, der schon geht

              1. In Liste springen und Objekt aussuchen
              2. Objekt anhaken
              3. Archivieren

              Der hypothetische Weg über das Objekt, der nicht geht

              1. In Liste springen und Objekt aussuchen
              2. Objekt öffnen
              3. Objekt editieren
              4. Zustand öffnen
              5. "Archiviert" auswählen
              6. Speichern

              Der Weg, den du gerne hättest, ist doch viel Klick-intensiver oder verstehe ich deine Frage falsch?

              Lieben Gruß
              Christian

              NEU - i-doit und IT-Dokumentation bei YouTube: https://www.youtube.com/@donamic_de
              Komplett-Strategie: https://i-doit-trainings.de/it-dokumentation-komplett-strategie/
              i-doit Mastery – https://i-doit-trainings.de/i-doit-mastery

              1 Reply Last reply Reply Quote 0
              • T Offline
                ThomasH
                last edited by

                Hallo Christian,

                häufig bekomme ich nur eine Inventarnummer mit der Info, das dieses Gerät entsorgt wurde.

                Also trage ich die Inventarnummer in der Suche oben rechts in i-doit ein. Daraufhin bekomme ich ein Gerät und lande dort in der Detail Seite.
                Nun würde ich dort gern das Gerät "Archivieren".
                Das Gerät erst nochmals in einer Liste zu suchen finde ich viel umständlicher.

                Viele Grüße
                Thomas

                1 Reply Last reply Reply Quote 0
                • creissC Offline
                  creiss i-doit Kenner
                  last edited by

                  Hallo Thomas,

                  das stimmt, aus der Richtung wäre das tatsächlich praktisch. Du könntest höchstens erst mal mit dem CMDB-Status arbeiten und das Gerät dann später auf "archiviert" setzen, aber das wären dann auch zwei Schritte.

                  Einen anderen Weg kenne ich sonst auch nicht.

                  Lieben Gruß
                  Christian

                  NEU - i-doit und IT-Dokumentation bei YouTube: https://www.youtube.com/@donamic_de
                  Komplett-Strategie: https://i-doit-trainings.de/it-dokumentation-komplett-strategie/
                  i-doit Mastery – https://i-doit-trainings.de/i-doit-mastery

                  1 Reply Last reply Reply Quote 0
                  • T Offline
                    ThomasH
                    last edited by

                    Hallo zusammen,

                    es ist zwar schon ziemlich lang her, dass dieses Thema hier behandelt wurde, aber es verfolgt mich noch 🙂

                    Nun ist mir eine andere Idee gekommen, bin mir aber nicht so ganz sicher, ob es möglich ist, bzw. wie das am einfachsten geht.
                    Ist es möglich über die CLI alle Objekte zu Filtern, die den CMDB-Status "verschrottet" haben und diese dann in den Zustand "archiviert" zu setzen?

                    So könnte dann regelmäßig ein Cronjob laufen.

                    LG
                    Thomas

                    M 1 Reply Last reply Reply Quote 0
                    • M Offline
                      middend i-doit Kenner @ThomasH
                      last edited by

                      Hallo Thomas,

                      das kannst Du gut über die CLI machen. Am besten erstellst Du einen Report der alle Objekte mit CMDB Status = verschrottet enthält. Dann kannste den über console.php in deinem Document Root ausführen lassen und weiterverarbeiten.

                      Gruss,

                      Jörg

                      1 Reply Last reply Reply Quote 0
                      • T Offline
                        ThomasH
                        last edited by

                        Hallo Jörg,

                        in der KB von i-doit habe ich zu reports zur gefunden, das man diese exportieren kann. Wie könnte so ein CLI Befehl aussehen?

                        Gruß
                        Thomas

                        M 1 Reply Last reply Reply Quote 0
                        • M Offline
                          middend i-doit Kenner @ThomasH
                          last edited by

                          Hi Thomas,

                          geh mal auf deinen Server in das Dokument Root.
                          Dann guck dir mal folgendes an:

                          /srv/www/htdocs/console.php report-export --help
                          Usage:
                          report-export [options]

                          Options:
                          -r, --reportId=REPORTID ID of the report
                          -d, --exportPath=EXPORTPATH Path to export the report into
                          -f, --exportFilename=EXPORTFILENAME File name of export file, without extension (e.g. .pdf).
                          Default is the title of the report
                          -t, --exportFileType=EXPORTFILETYPE File Type of the export. Possible options: csv, txt, pdf, xml [default: "csv"]
                          -u, --user=USER User
                          -p, --password=PASSWORD Password
                          -i, --tenantId=TENANTID Tenant ID [default: 1]
                          -c, --config=CONFIG Config File
                          -h, --help Display this help message
                          -q, --quiet Do not output any message
                          -V, --version Display this application version
                          --ansi Force ANSI output
                          --no-ansi Disable ANSI output
                          -n, --no-interaction Do not ask any interactive question
                          -v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

                          Help:
                          Executes an i-doit report and saves it to a file as CSV, TXT, PDF or XML

                          Damit das klappt musste natürlich vorher einen Report erstellt haben, der dir die verschrotteten Objekte anzeigt. Die Report ID brauchst du dann dann hier...

                          Gruss,

                          Jörg

                          1 Reply Last reply Reply Quote 1
                          • T Offline
                            ThomasH
                            last edited by

                            Hi,

                            dann habe ich den Report exportiert. Leider habe ich keine Idee wie ich dann weiter mache.
                            Reportergebnis bearbeiten und dann importieren oder wie soll das dann gehen?
                            Womit kann man .csv oder .txt bearbeiten (suchen/ersetzen)?

                            Gruß
                            Thomas

                            M 1 Reply Last reply Reply Quote 0
                            • M Offline
                              middend i-doit Kenner @ThomasH
                              last edited by

                              Hi Thomas,

                              ich würde den Report nur dazu nutzen, um festzustellen welche hosts den Status verschrottet haben. Da du diese ja dann archivieren und die Standorte löschen möchtest, würde ich das dann mit dem idoitcli Tool machen.

                              Ist etwas aufwändiger, aber machbar. Man muss für die Objekte in dem Report rausfinden welche IDs die Standorteinträge haben und diese dann per api call löschen. Den APi Call würde ich mit dem idoitcli von Ben Heisig machen (https://github.com/bheisig/i-doit-cli)

                              dann in einer schleife für jeden EIntrag aus dem Report die entsprechenden IDs der Einträge rausfinden:

                              idoitcli -c /etc/idoitcli/config_prod.json call '{"version": "2.0","method": "cmdb.category.read","params": {"objID": 5093027, "category": "C__CATG__LOCATION", "apikey": "xxxxx","language": "en"},"id": 1}'

                              Ergebnis sieht dann so aus (hier nur ein auszug):
                              {
                              "id": 2,
                              "jsonrpc": "2.0",
                              "result": [
                              {
                              "id": "5576",
                              "objID": "5093027",
                              "location_path": "920",
                              "parent": {
                              "id": "920", <<-- das ist die ID die wir brauchen

                              Dann über einen api call den Eintrag für das gewünschte Objekt löschen mit diesem Call (nur ein Beispiel) :

                              {
                              "version": "2.0",
                              "method": "cmdb.category.delete",
                              "params": {
                              "objID": 42,
                              "category": "C__CATG__IP",
                              "cateID": 3,
                              "apikey": "xxx",
                              "language": "en"
                              },
                              "id": 1
                              }

                              Über diesen API Call kann das gerät dann archiviert werden:

                              {
                              "version": "2.0",
                              "method": "cmdb.object.archive",
                              "params": {
                              "object": 464,
                              "apikey": "xxx",
                              "language": "en"
                              },
                              "id": 1
                              }

                              Hier ist noch ein Link zur API Doku:

                              https://kb.i-doit.com/display/en/Methods

                              Unter Kategorien und Attribute in der Verwaltung der API Schnittstelle findest du auch die Namen der Kategorien.

                              Hoffe das hilft 🙂 Muss man halt ein bisschen was programmieren, aber dann sollte es gut funktionieren.

                              Gruss,

                              Jörg

                              1 Reply Last reply Reply Quote 1
                              • T Offline
                                ThomasH
                                last edited by ThomasH

                                Hallo Jörg,

                                inzwischen bin ich durch Deine Holfe schon ein ganzes Stück weiter.
                                Ich habe nun einen Report, der mir alle Objekte auflistet, die als
                                Zustand "Normal" und als CMDB-Status "verschrottet" haben.

                                diesen rufe ich dann über die API auf:

                                curl \
                                --data '
                                {
                                    "version": "2.0",
                                    "method": "cmdb.reports.read",
                                    "params": {
                                        "apikey": "xxx",
                                        "id": "44",
                                        "language": "de"
                                    },
                                    "id": 1
                                }' \
                                --header "Content-Type: application/json" \
                                https://idoit.domain.de/src/jsonrpc.php
                                

                                Als Result bekomme ich dann

                                {"id":1,
                                "jsonrpc":"2.0",
                                "result":[{"ID":"32559",
                                "CMDB-Status":"LC__CMDB_STATUS__SCRAPPED",
                                "Zustand":"LC__CMDB__RECORD_STATUS__NORMAL",
                                "Bezeichnung":"TEST1"
                                }
                                ]
                                }
                                

                                Manuell bekomme ich das Objekt 32559 auch über die API archiviert:

                                curl \
                                --data '
                                {
                                    "version": "2.0",
                                    "method": "cmdb.object.archive",
                                    "params": {
                                        "object": 32559,
                                        "apikey": "xxx",
                                        "language": "de"
                                    },
                                    "id": 1
                                }' \
                                --header "Content-Type: application/json" \
                                https://idoit.domain.de/src/jsonrpc.php
                                

                                Result:

                                {"id":1,
                                "jsonrpc":"2.0",
                                "result":{"success":true,
                                "message":"Object 32559 has been archived."
                                }
                                }
                                

                                Soweit so gut, aber nun verstehe ich noch nicht so ganz wie ich es hin bekomme, dass er die Ergebnisse aus dem Report alle abarbeitet. Irgendwie muss die ID ja in eine Variable oder so übernommen werden und dann eine Schleife oder so angelegt werden.

                                Gruß
                                Thomas

                                1 Reply Last reply Reply Quote 0
                                • T Offline
                                  ThomasH
                                  last edited by

                                  Hallo,

                                  hat noch jemand einen Tipp für den letzten Schritt, den ich noch anpassen muss? Bin doch glaub so kurz vor dem Ziel.

                                  LG
                                  Thomas

                                  M 1 Reply Last reply Reply Quote 0
                                  • M Offline
                                    middend i-doit Kenner @ThomasH
                                    last edited by

                                    Hi Thomas,

                                    hab noch Tips, aber zurzeit keine Zeit das runterzuschreiben. Denke ich kann Dir was bis Mitte nächster Woche schreiben.
                                    Gruss,

                                    Jörg

                                    1 Reply Last reply Reply Quote 0
                                    • T Offline
                                      ThomasH
                                      last edited by

                                      Hi Jörg,

                                      das wäre klasse, wenn das klappt.

                                      VG
                                      Thomas

                                      M 1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        middend i-doit Kenner
                                        last edited by middend

                                        Hi Thomas,

                                        also wenn du das in einer Shell ausführst, würde ich die IDs aus dem Output extrahieren z.B |python -m json.tool am ende deines api calls.

                                        Dann bekommste einen strukturierten Output. Dann kannste du die ids: rausfiltern und dann eine schleife drüber laufen lassen.

                                        zB.
                                        for id in api.call| |python -m json.tool |grep id |awk -F":" '{print $2}' # vor api und am Ende nach ' kommen noch backticks, die werden hier aber nicht angezeigt 🙂
                                        do
                                        curl
                                        --data '
                                        {
                                        "version": "2.0",
                                        "method": "cmdb.object.archive",
                                        "params": {
                                        "object": $id,
                                        "apikey": "xxx",
                                        "language": "de"
                                        },
                                        "id": 1
                                        }'
                                        --header "Content-Type: application/json"
                                        https://idoit.domain.de/src/jsonrpc.php

                                        done

                                        wichtig dabei ist, dass nur die ID in der id Variable steht und keine weiteren Zeichen mehr. Kannste ja am besten vorher mal den Filter erstellen und testen.

                                        Sollte dann so eigentlich ganz gut funktionieren. Also das hier wäre jetzt für ne bash. Ich weiss ja nicht was deine bevorzugte Programmiersprache ist. aber mit python, perl etc geht das auch.

                                        1 Reply Last reply Reply Quote 0
                                        • M Offline
                                          middend i-doit Kenner
                                          last edited by middend

                                          es funktioniert auch sehr gut mit dem jq tool (https://stedolan.github.io/jq/download/)

                                          Die Ids bekommste dann so :
                                          api.call | jq -r '.result[]?.ID'

                                          Das ist noch etwas schöner als die Lösung oben 🙂

                                          1 Reply Last reply Reply Quote 0
                                          • M Offline
                                            middend i-doit Kenner @ThomasH
                                            last edited by

                                            @ThomasH haste mal probiert, ob Du so zurecht kommst oder gibts noch Probleme?

                                            Gruss,
                                            Jörg

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post