GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  AMBIT (1)

NAME

Ambit - Expand Host Groups OR Expand + Execute Commands

CONTENTS

Synopsis
Description
Options
     HostGroup Controls
     Option Controls
Short Commands
Special Hostgroup
Examples
Bugs
Author

SYNOPSIS

ambit [AmbitExpandableString]
ambit hostfile
ambit /path/to/hostfile
ambit [UserHostGroup]
ambit [SystemHostGroup]
ambit [NetworkHostGroup]
ambit [ list | create ] hostgroup
ambit [ edit | remove ] hostgroup [HostGroupName]
ambit command [AmbitExpandableString]

DESCRIPTION

Ambit at its simplest uses Bash Brace Expansion to expand and list hostnames OR commands. Ambit is first and foremost meant to be a general purpose hostlist enumerator for use by other applications or scripts. Additionally Ambit can be used to manage hostgroups specific to a single user or accessible to all users on a system or queryable from anywhere on the network. Finally, Ambit is able to detect when it is passed a command on the command line, allowing for the command to be expanded into separate commands that are then executed in serial. This means Ambit can expand and run just about anything on the command line and usually works in places where Bash Brace Expansion will fail.

Ambit allows for hosts to be enumerated from a number of different places including directly on the command line (via an Ambit expandable string), a file in the current working directory ($PWD), a file whose path is specified, user pre-defined hostgroups, system pre-defined hostgroups and network defined hostgroups.

CLI Argument Ambit will accept an expandable string on the command line and expand that string into either hosts or hostgroups. If any part of a string expands to a hostgroup, Ambit will then enumerate the hostgroup along with any other hosts/hostgroups that may also result from expansion.

File in $PWD If a file happens to be in a user’s $PWD and has either Ambit expandable strings or hostnames, it can be passed to Ambit as an argument and Ambit will expand it.

File Path Ambit will accept the full path to a file with Ambit expandable strings or hostnames that it will enumerate.

User Hostgroups Ambit will enumerate Ambit expandable strings or hostnames by a designated name created with ’ambit create hostsgroup’ or manually and located in the directory $HOME/.ambit/hosts.

System Hostgroups Ambit will enumerate Ambit expandable strings or hostnames by a designated name created as root via ’ambit create hostsgroup’ or manually and located in the directory /var/ambit/hosts.

Network Hostgroups Ambit will enumerate Ambit expandable strings stored in DNS TXT records at a domain specified in the Domain="" option.

OPTIONS

    HostGroup Controls

list hostgroups List all User, System and Network Hostgroups. Name and Description are displayed.

create hostgroup Create a new Hostgroup. If executing Ambit with root privileges the Hostgroup will be created as a System Hostgroup, otherwise it will be a User Hostgroup.

remove hostgroup Remove a User or System Hostgroup.

edit hostgroup Edit an existing User or System Hostgroup.

    Option Controls

list options List both System and User Tunable Options.

edit option Edit or Set a User Option. User options override System Options.

SHORT COMMANDS

Ambit supports an abbreviated subcommand syntax:

ambit list hgroups ambit show hgroups ambit ls hgs

ambit create hostgroup ambit add hgroup ambit add hg ambit cr hg

ambit edit hostgroup [HostGroupName] ambit ed hg [HostGroupName]

ambit remove hostgroup [HostGroupName] ambit del hgroup [HostGroupName] ambit rm hg [HostGroupName]

SPECIAL HOSTGROUP

There is a special System HostGroup called ’down’ (/var/ambit/hosts/down) that is installed and left empty by default. This group is meant to provide a dynamic, near realtime listing of hosts that have been determined to be unreachable from the local host for one reason or another. Reasons can range from, a host or hosts in ’down’ have failed specific monitoring check or failed the last periodic ping check or someone with root privileges has decided that it is down. If a host happens to be currently listed in the System HostGroup ’down’ AND a user has a User HostGroup named down ($HOME/.ambit/hosts/down) Ambit will omit the host from all results for that user. In other words, users can choose whether they want to honor the current list of unreachable hosts according the local host. To do so they simple have to create the HostGroup down with no hosts listed. The existence of this group tells Ambit to honor the System HostGroup ’down’.

    ’down’

$ sudo ambit create hostgroup HostGroup Name : down HostGroup Summary : System Wide Unreachable Hosts Enter Hostnames Below [Ctrl-d to End]: test1.mydomain.org

$ ambit list hostgroups | grep down down: System Wide Unreachable Hosts

$ ambit down test1.mydomain.org

$ ambit create hostgroup HostGroup Name : mydomain HostGroup Summary : Production mydomain.org Servers Enter Hostnames Below [Ctrl-d to End]: test[1..12].mydomain.org

$ ambit mydomain test1.mydomain.org test10.mydomain.org test11.mydomain.org test12.mydomain.org test2.mydomain.org test3.mydomain.org test4.mydomain.org test5.mydomain.org test6.mydomain.org test7.mydomain.org test8.mydomain.org test9.mydomain.org

$ ambit create hostgroup HostGroup Name : down HostGroup Summary : Honoring System HostGroup ’down’ Enter Hostnames Below [Ctrl-d to End]:

$ ambit list hostgroups

System HostGroups ------------------ down: System Wide Unreachable Hosts

User HostGroups ---------------- mydomain: Production mydomain.org Servers down: Honoring System HostGroup ’down’

$ ambit mydomain test10.mydomain.org test11.mydomain.org test12.mydomain.org test2.mydomain.org test3.mydomain.org test4.mydomain.org test5.mydomain.org test6.mydomain.org test7.mydomain.org test8.mydomain.org test9.mydomain.org

$ sudo ambit edit hostgroup down

# # Summary - System Wide Unreachable Hosts # test1.mydomain.org test10.mydomain.org test11.mydomain.org test12.mydomain.org

$ ambit mydomain test2.mydomain.org test3.mydomain.org test4.mydomain.org test5.mydomain.org test6.mydomain.org test7.mydomain.org test8.mydomain.org test9.mydomain.org

EXAMPLES


Listing All Enumerable HostGroups 

$ ambit list hostgroups

Network Host Groups ------------------- svn: descriptive text "web[1..3].mydomain.org" yum: descriptive text "web[4..6].mydomain.org" web: descriptive text "web[7..50].mydomain.org"

System Host Groups ------------------ down: System Wide Down Hosts admin: All Admin Hosts

User Host Groups ---------------- aff: Test Group For Expansion latest: The Latest Hotness in Hosts stuff: Stuff and Thing

Listing Configurable Options

$ ambit list options

System Options -------------- WeLogin="yes" YouMask="0077" Random="$RANDOM" AllFiles="/var/$MyNameIs" UsrFiles="$HOME/.$MyNameIs" AllConf="/etc/$MyNameIs/$MyNameIs.conf" UsrConf="$HOME/.$MyNameIs.conf" Domain=""

User Options ------------ Domain="mydomain.org"

Creating, Listing and Expanding a HostGroup

$ ambit create hostgroup Host Group Name: manpage Host Group Description: Sweet HostGroup For Ambit’s ManPage Enter Hostnames Below [Ctrl-d to End]: manpage[1..5].mydomain.org manpage7.mydomain.org manpage10.mydomain.org

$ ambit list hostgroups | grep manpage manpage: Sweet HostGroup For Ambit’s ManPage

$ ambit manpage manpage10.mydomain.org manpage1.mydomain.org manpage2.mydomain.org manpage3.mydomain.org manpage4.mydomain.org manpage5.mydomain.org manpage7.mydomain.org

Mixing HostGroups and Expandable Strings

$ ambit [manpage,aff,ns[1..4].google.com] 1.a.ff 2.a.ff 3.a.ff manpage10.mydomain.org manpage1.mydomain.org manpage2.mydomain.org manpage3.mydomain.org manpage4.mydomain.org manpage5.mydomain.org manpage7.mydomain.org ns1.google.com ns2.google.com ns3.google.com ns4.google.com

Expanding Commands

$ ambit host -t ns [google,facebook,twitter].com facebook.com name server ns1.facebook.com. facebook.com name server ns2.facebook.com. facebook.com name server ns3.facebook.com. facebook.com name server ns4.facebook.com. facebook.com name server ns5.facebook.com. google.com name server ns1.google.com. google.com name server ns2.google.com. google.com name server ns3.google.com. google.com name server ns4.google.com. twitter.com name server ns1.p34.dynect.net. twitter.com name server ns2.p34.dynect.net. twitter.com name server ns3.p34.dynect.net. twitter.com name server ns4.p34.dynect.net.

$ ambit sudo /sbin/service [httpd,postfix,named] restart Stopping httpd: [ OK ] Starting httpd: [ OK ] Shutting down postfix: [ OK ] Starting postfix: [ OK ] Stopping named: [ OK ] Starting named: [ OK ]

$ ambit lastlog -u [$(grep Wheel /etc/group |sed -e ’s/W.*\://g’)] Username Port From Latest bill ttyp3 cpe-76-87-95-166 Thu Jul 29 08:48:33 -0700 2010 doug ttyp0 99-64-251-98.lig Fri Oct 22 14:47:48 -0700 2010 felipe ttyp0 pool-108-41-38-2 Sun Mar 20 16:52:36 -0700 2011 james **Never logged in** john **Never logged in** kurtis **Never logged in** mm pts/3 cpe-76-171-101-9 Sat Jul 9 02:31:50 -0700 2011 sara **Never logged in** shaun **Never logged in** shomari **Never logged in** victor **Never logged in** zack **Never logged in**

^^ Listing for the last time the members of the Wheel group logged in (if ever).

BUGS

Fleas, Adam Had ’em.

AUTHOR

Mike Marschall (mm@a.tt)
Search for    or go to Top of page |  Section 1 |  Main Index


2.0 AMBIT (1) 08 Jul 2011

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.