I created a script that permit to control opsi package installation through command line (I don't like that much GUI and Java of “opsi config editor”).
The script permits too to handle host group and product group, a thing that “opsi config editor” does not manage well I think.
The script is on github: wget https://raw.github.com/souch/opsi-misc/master/opsi-pkg and will be update/debug while I'll use it.
The script always ask before modifying something on OPSI (except when using –yes switches). And it warn and propose default action if something seems strange/not useful. So anyone can test it without too much risks
Output of the usage helper:
$ opsi-pkg usage: opsi-pkg [--help] [--quiet] [--verbose] [--debug] [--default] [--yes] [--no] [--force] [--fire] [--ping] [--list] [--add] [--delete] [--call [CALL [CALL ...]]] [--request {setup,uninstall,once,update,custom,userLogin,always,none}] [--setup] [--uninstall] [--host [HOST [HOST ...]]] [--package [PACKAGE [PACKAGE ...]]] [--host-group [HOST_GROUP [HOST_GROUP ...]]] [--package-group [PACKAGE_GROUP [PACKAGE_GROUP ...]]] simple opsi package manager interface optional arguments: --help show this help message and exit --quiet, -q do not print info log --verbose, -v print more log --debug print even more log --default answer default answer to every question --yes, -y answer yes to every question --no answer no to every question --force, -f force doing action that does seems to be needed. e.g. install a package on a host that has already the last package installed. --fire Fire the request now (i.e. push the request to the hosts). --ping show hosts status (on/off) --list, -l List something. Combine it with: -h, -p, -h -p, -hg, -pg. --add, -a Add something. Combine it with: -hg, -pg, -hg -h, -pg -p --delete, -d Delete something. Combine it with: -hg, -pg, -hg -h, -pg -p. --call, -c {shutdown, reboot, wakeup, delete, fire, popup "message"} Launch action (push it to hosts). Combine it with: -h, -hg --request, -r {setup, uninstall, once, update, custom, userLogin, always} Set next action (pulled by hosts) on given hosts and packages. Combine it with: -h, -hg, -p, -pg, --fire. --setup, -s Shortcut for "-request setup". --uninstall, -u Shortcut for "-request uninstall". --host [HOST [HOST ...]], -h [HOST [HOST ...]] Do sthg with host. No host given means every hosts.) --package [PACKAGE [PACKAGE ...]], -p [PACKAGE [PACKAGE ...]] Do sthg with package. No package given means every packages. --host-group [HOST_GROUP [HOST_GROUP ...]], -hg [HOST_GROUP [HOST_GROUP ...]] Do sthg with host group --package-group [PACKAGE_GROUP [PACKAGE_GROUP ...]], -pg [PACKAGE_GROUP [PACKAGE_GROUP ...]] Do sthg with package group ========= Examples: # list every packages opsi-pkg -l -p # list every hosts and show their up status opsi-pkg -l -h --ping - # list installed packages on every computer opsi-pkg -l -p -h # list installed packages on tata computer opsi-pkg -l -p -h tata # list package font on every computer opsi-pkg -l -p font -h # list packages font and office on tata and titi computers opsi-pkg -l -p font office -h tata titi - # list host groups opsi-pkg -l -hg # create an host group "pc" without asking it opsi-pkg -a -hg pc 'all desktop pc' -y # create an host group "chicago" and wich has for parent 'pc' host group opsi-pkg -a -hg chicago 'chicago network' pc # add to host group "pc" the machines "tata, toto, and titi" opsi-pkg -a -hg pc -h tata toto titi # add to host group "pc" every machines of OPSI opsi-pkg -a -hg pc -h # delete host titi from host group "pc" opsi-pkg -d -hg pc -h titi # delete host group "pc" opsi-pkg -d -hg pc # list package groups opsi-pkg -l -pg # create a package group "base" opsi-pkg -a -pg base 'default program' - # call 'hello' popup on each computer that belongs to 'pc' host group opsi-pkg -c popup 'hello' -hg pc # delete host tutu from OPSI opsi-pkg -c delete -h tutu - # install firefox on computer tata opsi-pkg -r setup -p firefox -h tata # install firefox on computers that belongs to 'pc' host group even if it is # already install and up-to-date and push the setup now opsi-pkg -s -p firefox -hg pc --force --fire # install firefox on computers that belongs to 'pc' host group opsi-pkg -s -p firefox -hg pc # install base packages on computers that belongs to 'pc' host group opsi-pkg -s -pg base -hg pc # uninstall firefox on computers that belongs to 'pc' host group opsi-pkg -u -p firefox -hg pc # reset request on package firefox of the computer tata opsi-pkg -r none -p firefox -h tata ====== Notes: OPSI cannot have same name in product group and host group
Output of list host (there are colors when using it for real).
# opsi-pkg --list --host --ping host ip up lastSeen since mac titi 10.0.0.104 off 2013-04-12 06:58:54 5 d tata 10.0.0.200 on 2013-04-12 08:58:24 5 d toto 10.0.0.170 off 2013-03-25 12:49:26 23 d 00:21:72:79:2b:80 tutu 10.0.0.64 off 2013-02-28 09:19:50 300d