Frédéric Péters
5b7c51b127
add 1st fqdn part without trailing digits as keyword
2021-01-30 20:44:13 +01:00
Christophe Siraut
7f6760788f
use servers.yaml instead of deprecated servergroups.yaml
2021-01-30 20:44:13 +01:00
Frédéric Péters
b7b2641838
allow specifying multiple suffixes to be stripped
2021-01-30 20:44:13 +01:00
Frédéric Péters
7357bef79c
add stripsuffix configuration option
2021-01-30 20:44:13 +01:00
Frédéric Péters
941d36394b
include welco in restart.all/collectstatic commands
2021-01-30 20:44:13 +01:00
Frédéric Péters
14b0553b52
add -x to exclude hosts based on regex match
2021-01-30 20:44:13 +01:00
Frédéric Péters
33a6284084
add passerelle/wcs restart command shortcuts
2021-01-30 20:44:13 +01:00
Frédéric Péters
c8d6958ebd
reread supervisor config before restarting hobo-agent
2021-01-30 20:44:13 +01:00
Frédéric Péters
f7cde263f1
add puppet.update shortcut
2021-01-30 20:44:13 +01:00
Frédéric Péters
1be44c026b
use safe loading of yaml inventory
2021-01-30 20:44:13 +01:00
Frédéric Péters
a5d68535cf
add memcached.restart
2021-01-30 20:44:13 +01:00
Frédéric Péters
298064e76c
add shortcut to restart all services
...
(useful after a new hobo version, for example)
2021-01-30 20:44:13 +01:00
Frédéric Péters
5307c5d52d
do not start if already running in tmux
2021-01-30 20:44:13 +01:00
Frédéric Péters
b0d13c9439
remove all digits to get cluster name
2021-01-30 20:44:13 +01:00
Frédéric Péters
8ce27b32d5
do not try disabling ssh connection sharing
...
Whatever the command line options connection sharing configured in
~/.ssh/config stays somehow active, and cause errors.
Ansible has custom code to detect the situation and automatically
restart a SSH connection (see AnsibleControlPersistBrokenPipeError usage
in lib/ansible/plugins/connection/ssh.py, also relevant is bug#16731).
The only reliable fix is thus to change ~/.ssh/config to limit
connection sharing to apply to some hosts only.
2021-01-30 20:44:13 +01:00
Frédéric Péters
adc884a972
add support for a --noinput flag
2021-01-30 20:44:13 +01:00
Frédéric Péters
46c83e0484
disable connection sharing as it proved unreliable
2021-01-30 20:44:13 +01:00
Frédéric Péters
5985587b4a
offer choices when a command fails
2021-01-30 20:44:13 +01:00
Frédéric Péters
34883be7d5
execute actual ssh command in a fork, to get return code
2021-01-30 20:44:13 +01:00
Frédéric Péters
7cef54cb70
split status-window and session-name parameters
2021-01-30 20:44:13 +01:00
Frédéric Péters
f0ab4feea3
add support for passing command args
2021-01-30 20:44:13 +01:00
Frédéric Péters
c2bf345bcb
force ssh pty allocation
2021-01-30 20:44:13 +01:00
Frédéric Péters
c28881c972
use full-upgrade
2021-01-30 20:44:13 +01:00
Frédéric Péters
a228a501c9
bump parallel jobs to 10
...
test results, eoptasks -k test /bin/true (52 servers)
* 5 jobs: 48 seconds
* 10 jobs: 29 seconds
* 20 jobs: 28 seconds
2021-01-30 20:44:13 +01:00
Frédéric Péters
493ad8f5e7
add hobo-agent.restart command
2021-01-30 20:44:13 +01:00
Frédéric Péters
a88d3e042f
fix moonlight progress order
2021-01-30 20:44:13 +01:00
Frédéric Péters
5e75af334f
add combo.reload special command
2021-01-30 20:44:13 +01:00
Frédéric Péters
1962287758
add examples
2021-01-30 20:44:13 +01:00
Frédéric Péters
61570f5008
add unmodified group name to keywords
2021-01-30 20:44:13 +01:00
Frédéric Péters
c536958fe7
add ignorelist
...
(so it's not necessary to keep local commits in the puppet repository to
disable servers such as villejuif-test)
2021-01-30 20:44:13 +01:00
Frédéric Péters
1342001811
add curses/emoji status screen
2021-01-30 20:44:13 +01:00
Frédéric Péters
47db1cc1c8
use an independent process for status window
2021-01-30 20:44:13 +01:00
Frédéric Péters
2eca6b4e1e
refactor into multiple functions
2021-01-30 20:44:13 +01:00
Frédéric Péters
ca1a9ec137
add moonlight progress indicator
...
(this keeps a window always open, so hacks to handle final serial
processes are removed)
2021-01-30 20:44:13 +01:00
Frédéric Péters
048ee86c08
add servername parts as keywords
...
This make it possible to have filters such as node1.dev or entrouvert.org
2021-01-30 20:44:13 +01:00
Frédéric Péters
b1ca82e646
add option to exclude keywords
...
eoptasks -k node1,node2,-database will give all node1/node2 servers
except database.node1 and database.node2.
2021-01-30 20:44:13 +01:00
Frédéric Péters
18549759d4
add flag to list selected servers
2021-01-30 20:44:13 +01:00
Frédéric Péters
f6f5b309be
add configuration file/do not hardcode my path
2021-01-30 20:44:13 +01:00
Frédéric Péters
f1e6ae9b49
randomize servers
2021-01-30 20:44:13 +01:00
Frédéric Péters
9df1dcc4ac
add collectstatic command
2021-01-30 20:44:13 +01:00
Frédéric Péters
818d28fbfe
add new script to run commands on servers
...
This script provides parallel remote execution of commands, while having
some special knownledge of servers that should *not* be handled in parallel.
It defers terminal-handling to tmux(1).
It has some targeting capacities using keywords. Commas for 'OR' and slashes
for 'AND', ex: ext/test,saas/test/passerelle will select all external test
servers + all passerelle servers on the SaaS.
It takes any shell command and has some builtin shortcuts such as apt.update
and apt.upgrade. (that's the whole lot, actually).
Regarding actual performance benefits, apt upgrade with no packages to
upgrade:
$ time eoptasks -k ext/test apt.upgrade
real 0m24,249s
user 0m0,140s
sys 0m0,025s
$ time eotasks -g ext_test apt.upgrade
real 6m9,956s
user 3m32,096s
sys 0m2,322s
2021-01-30 20:44:04 +01:00