-
Notifications
You must be signed in to change notification settings - Fork 1
ircu network configuration management and deployment.
License
GameSurge/gsconf
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
GameSurge ircd config management tool REQUIREMENTS libpq/PostgreSQL libssh2 (http://www.libssh2.org/) readline ARGUMENTS -w, --workdir 'path' Change the working directory -s, --ssh-passphrase 'secret' Set the default SSH passphrase. No argument or '-' will prompt it via stdin. -d, --debug Toggles debug mode. -b, --batch 'command' Executes a command and terminates when finished. Can be used multiple times. Note that only commands which require no user interaction should be executed in batch mode. -c, --no-colors Disables colorful output. FILES ~/.gsconf_dir Default working directory. May be changed with the -w argument. gsconf.cfg Main config file. See gsconf.cfg.example. COMMON TASKS Push changes to the servers Run 'commit'. If you want to ensure the generated configs are compared with the remote ones instead of the local ones (from the last commit), use 'commit --check-remote'. Create a server Run 'addserver' and 'install <server>' and follow the steps displayed. Set the primary hub for a server Run 'autoconnect <server> <hub> on'. This will automatically disable autoconnect for all other hubs the server is linked to. Add a hostmask to an oper Run 'modoper <name> --addmask <mask>' Add a new bot server client authorization Run 'addclientgroup' to add the group and the first ident/host/ip combination. Add/remove ident/host/ip combinations for a client authorization group Run 'editclients <groupname> <server>'. This will display a list of current combinations and ask you if you want to delete/add combinations. Check if server configs have been changed manually. Run 'checkconf'. This will compare all remote configs against the ones cached during the last commit. CONFIG MANAGEMENT commit [args] [server] quicksync [args] [server] conf quicksync [args] [server] Generate local config files and upload them to the servers. This command should be used after any changes! The following arguments are supported: --check-remote Check remote configs if they need to be updated instead of only checking the local copies. --update Automatically update without confirmation. --rehash Automatically rehash without confirmation. --no-rehash Never rehash and do not ask for confirmation. rehash <server> conf rehash <server> Send SIGHUP to the specified server's ircd process checkconf [server] Check remote config file(s) for modifications. Only usable if live configs exist locally, i.e. not before the first local->server sync. conf get-missing Download all configs from servers which do not exist locally. buildconfs [server] conf build [server] Generate config file(s). syncconfs [args] [server] conf sync [args] [server] Upload local config files to the servers. This command can only be used after running `buildconfs'. Usually it is better to use `commit' which both builds and syncs the config files. The following arguments are supported: --check-remote Check remote configs if they need to be updated instead of only checking the local copies. --update Automatically update without confirmation. --rehash Automatically rehash without confirmation. --no-rehash Never rehash and do not ask for confirmation. getconf <server> Download the config from the specified server and save it as a remote config. Usually not needed. putconf <server> Upload the local 'live' config to the specified server. Usually not needed. CONNCLASS MANAGEMENT classes class list Display a list of all client connection classes. classinfo <name> class info <name> Display detailed information about a class, including detailed privileges, opers and clients. addclass class add Create a new client connection class. Prompts for name, pingfreq, maxlinks, sendQ, recvQ, umodes, fakehost and opertype. delclass <name> class del <name> Delete the specified client connection class. Only classes which are not used by any clients/opers can be deleted. Otherwise the clients/oper using the class are displayed. modclass <name> <args...> classmod <name> <args...> class mod <name> <args...> class edit <name> <args...> Modify the specified client connection class. The following arguments are supported: --fakehost fakehost Set the default fakehost. Setting it to '*' removes it. --maxlinks number Set the maxlinks, i.e. the max number of clients allowed in the class. Setting it to 0 will not limit them. --pingfreq 'duration' Set the ping frequency. Must be an ircu-style duration. --sendq bytes --recvq bytes Set the sendQ/recvQ buffer size. --umode Set the default usermode. Setting it to '*' removes it. --priv priv value Set the specified privilege. 'priv' can be 'chan_limit', 'die', 'flood', 'gline_immune', 'local', 'notargetlimit', 'pseudoflood', 'restart', 'umode_chserv', 'umode_nochan' or 'umode_noidle'. 'value' can be 'yes', 'no' or 'inherit'. CLIENT AUTHORIZATION MANAGEMENT clients client list Display a list of all client authorizations. addclientgroup client addgroup Create a new client authorization group. Prompts for name, server, connclass, ident, ip, host, password and maxlinks. delclientgroup <groupname> <server> client delgroup <groupname> <server> Delete the specified client authorization group on the specified server. modclientgroup <groupname> <server> <args...> clientmodgroup <groupname> <server> <args...> client modgroup <groupname> <server> <args...> Modify the specified client authorization. The following arguments are supported: --class connclass Set the connection class. --maxlinks number Set the max. number of clients. Setting it to '*' will use the connclass default. --password Set the password the client must specify. Setting it to '*' will remove the password requirement. editclients <groupname> <server> client editclients <groupname> <server> Edit the clients in the specified client authorization group. Allows both deleting and adding of ident/host/ip combinations for the client authorization group. FORWARD MANAGEMENT forwards forward list Display a list of all forwards. addforward forward add Create a new forward. Prompts for prefix, target and server. delforward <prefix> [server] forward del <prefix> [server] Delete the specified forward. NICK JUPE MANAGEMENT jupes jupe list Display a list of all nick jupes. addjupe jupe add Create a new jupe. Prompts for name and nicks. deljupe <name> jupe del <name> Delete the specified jupe. SERVER LINK MANAGEMENT links link list Display a list of all server/service links and their autoconnect states. addlink link add Create a new link between a server/service and a hub. Prompts for server, hub and autoconnect state. dellink <server|service> <hub> link del <server|service> <hub> Delete the specified link. autoconnect <server> <hub> <on|off> link autoconnect <server> <hub> <on|off> Set the autoconnect state of the specified link. IRC OPERATOR MANAGEMENT opers oper list Display a list of all opers. operinfo <name> oper info <name> Display detailed information about an oper, including detailed privileges and hostmasks. addoper oper add Create a new oper. Prompts for internal name, username, password, connclass, globalness, servers and hostmasks. deloper <name> oper del <name> Delete an oper. Prompts for confirmation. modoper <name> <args...> opermod <name> <args...> oper mod <name> <args...> oper edit <name> <args...> Modify the specified oper. The following arguments are supported: --addmask hostmask Add a new ident@host mask. --delmask hostmask Remove the specified host mask. --addserver server Add the oper to the specified server. --delserver server Remove the oper from the specified server. --class connclass Set the connection class. --password Set the oper password. --suspend --unsuspend Suspend/unsuspend the oper (removes his oper blocks). --username name Set the /oper user name. --priv priv value Set the specified privilege. 'priv' can be 'chan_limit', 'die', 'flood', 'gline_immune', 'local', 'notargetlimit', 'pseudoflood', 'restart', 'umode_chserv', 'umode_nochan' or 'umode_noidle'. 'value' can be 'yes', 'no' or 'inherit'. PSEUDO COMMAND MANAGEMENT pseudos pseudo list Display a list of all pseudo commands. addpseudo pseudo add Create a new pseudo command. Prompts for command, server, target and prepend string. delpseudo <name> <server|*> pseudo del <name> <server|*> Delete the specified pseudo command. SERVER MANAGEMENT servers server list Display a list of all servers. serverinfo <server> server info <server> Display detailed information about a server, including link information, ports, opers, clients, jupes and webirc. exec <server|*> <command> Execute a shell commands on the specified server. Output is displayed in realtime. Using '*' as the server name will execute the command on all servers and will prompt for confirmation. putfile <server|*> <local> <remote> [perms] Upload the specified file to the specified server. Using '*' as the server name will upload the file to all servers. If no perms are given, 0600 will be used. connect <server|*> Open a persistent ssh connection to the specified server. Using '*' as the server name will upload the file to all servers. addserver server add Create a new server. Prompts for name, type, numeric, link pass, ips, server port, description, contact/location/provider information, connexit snotice flag and SSH login information. If the server is connected to another server via a private network, a private ip and a subnet mask must be entered to ensure proper connectivity from/to both the hubs in the private network and those which are only available through public addresses. delserver <server> server del <server> Delete a server. Prompts for confirmation. renameserver <server> server rename <server> Rename a server. Prompts for the new name. editserver <server> server edit <server> Edit the specified server. Prompts for type, numeric, link pass, ips, server port, description, contact/location/provider information, connexit snotice flag and SSH login information. Note that the type cannot be change from/to HUB. To convert a server to a hub/non-hub, you need to delete and re-add it. install <server> [option] server install <server> [option] Installs the ircd on the specified server. The following options are supported, but mainly needed if a step fails: --reinstall Skip the check if ~/ircu exists. --upload Upload the source archive even if it alraedy exists. Note: Using this switch forces deletion of the existing source folder. --unpack Skip the check if the ircu source archive exists. --configure Start with 'configure' (e.g. if the source was unpacked manually). --build Compile the ircd (e.g. if configure was run manually). --install Install the ircd (e.g. if make was run manually). --no-install --build-only Stop before executing the 'make install' step. This option can also be used AFTER another option. addport <server> server addport <server> Add a port to a server. Prompts for port number, port type, visibility and optional bind ip. If no port is specified, all existing client ports will be copied with the specified IP, which is required in this case. If no ip is specified, the default private/public one is used depending on the port type. delport <server> <port> [ip] server delport <server> <port> [ip] Delete the specified port. Prompts for confirmation if ip is not specified and the port exists on multiple ips. server addjupe <server> <jupe> Add the specified nick jupe to the specified server. server deljupe <server> <jupe> Remove the specified nick jupe from the specified server. server addwebirc <server> <webirc-name> Add the specified webirc authorization to the specified server. server delwebirc <server> <webirc-name> Remove the specified webirc authorization from the specified server. SERVICE MANAGEMENT services service list Display a list of all services. addservice service add Create a new service. Prompts for name, numeric, ip, link pass, hub flag and uworld flag. delservice <name> service del <name> Delete the specified service. editservice <name> service edit <name> Edit the specified service. Prompts for numeric, ip, link pass, hub flag and uworld flag. WEBIRC MANAGEMENT webircs webirc list Display a list of all webirc authorizations. addwebirc webirc add Create a new webirc authorization. Prompts for name, description, ip, password, ident and hmac settings. delwebirc <name> webirc del <name> Delete the specified webirc authorization. editwebirc <name> webirc edit <name> Edit the specified webirc authorization. Prompts for description, ip, password, ident and hmac settings. FEATURE MANAGEMENT features feature list Display a list of all ircd features. delfeature <name> <*|server-type> feature del <name> <*|server-type> Delete the specified feature. Valid server types are '*' for the default, LEAF, HUB, BOTS and STAFF. setfeature <name> <*|server-type> feature set <name> <*|server-type> Set the specified feature for the specified server type. This command can both edit existing features or add new ones. Valid server types are '*' for the default, LEAF, HUB, BOTS and STAFF. MISC commands Display a list of all available commands and their aliases. help <command> Display a short description if the specified command. exit quit Quit the application.
About
ircu network configuration management and deployment.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published