cronicle 0.1.2 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/README.md +8 -0
- data/lib/cronicle/cli.rb +10 -3
- data/lib/cronicle/client.rb +4 -0
- data/lib/cronicle/ext/sshkit_ext.rb +1 -1
- data/lib/cronicle/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e33a76397600f6b7c1dc022459638a2fa110e8fb
|
4
|
+
data.tar.gz: be4c62e61702f516a1c0fa1092d4db59d63eb9e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: db4e5c51f3742cbb08a974fb9beac13aa9507a6a05d72827891dfa22b277968602a7ea48d8c4a684df2f44b3e391be3789a2cc3077bdf4f32badc6f4091a693e
|
7
|
+
data.tar.gz: 897f0d4f90395b938e06be90bed3cc8cd5df90cfaf5e1fe57dcf057d7818503c5ef2c19c56706bc21f72a0708de99039d4f55610bb37557e43944a8d10810f80
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -35,9 +35,11 @@ Options:
|
|
35
35
|
-h, [--hosts=HOSTS] # Hosts definition file
|
36
36
|
-r, [--target-roles=one two three] # Target host role list
|
37
37
|
-p, [--sudo-password=SUDO-PASSWORD] # Sudo password
|
38
|
+
[--ssh-user=SSH-USER] # SSH login user
|
38
39
|
[--ask-pass], [--no-ask-pass] # Ask sudo password
|
39
40
|
[--dry-run], [--no-dry-run] # Do not actually change
|
40
41
|
-c, [--ssh-config=SSH-CONFIG] # OpenSSH configuration file
|
42
|
+
# Default: ~/.ssh/config
|
41
43
|
[--ssh-options=SSH-OPTIONS] # SSH options (JSON)
|
42
44
|
[--connection-timeout=N] # SSH connection timeout
|
43
45
|
[--concurrency=N] # SSH concurrency
|
@@ -78,6 +80,12 @@ $ ssh your_hostname 'cat /var/lib/cronicle/libexec/ec2-user/my_job'
|
|
78
80
|
puts "hello"
|
79
81
|
```
|
80
82
|
|
83
|
+
## Environment variables
|
84
|
+
|
85
|
+
* CRONICLE_SSH_USER
|
86
|
+
* CRONICLE_SSH_OPTIONS
|
87
|
+
* CRONICLE_SSH_CONFIG
|
88
|
+
|
81
89
|
## Jobfile example
|
82
90
|
|
83
91
|
```ruby
|
data/lib/cronicle/cli.rb
CHANGED
@@ -5,10 +5,11 @@ class Cronicle::CLI < Thor
|
|
5
5
|
class_option 'hosts', :aliases => '-h', :desc => 'Hosts definition file'
|
6
6
|
class_option 'target-roles', :aliases => '-r', :desc => 'Target host role list', :type => :array
|
7
7
|
class_option 'sudo-password', :aliases => '-p', :desc => 'Sudo password'
|
8
|
+
class_option 'ssh-user', :desc => 'SSH login user', :default => ENV['CRONICLE_SSH_USER']
|
8
9
|
class_option 'ask-pass', :desc => 'Ask sudo password', :type => :boolean, :default => false
|
9
10
|
class_option 'dry-run', :desc => 'Do not actually change', :type => :boolean, :default => false
|
10
|
-
class_option 'ssh-config', :aliases => '-c', :desc => 'OpenSSH configuration file', :default =>
|
11
|
-
class_option 'ssh-options', :desc => 'SSH options (JSON)', :default =>
|
11
|
+
class_option 'ssh-config', :aliases => '-c', :desc => 'OpenSSH configuration file', :default => (ENV['CRONICLE_SSH_CONFIG'] || '~/.ssh/config')
|
12
|
+
class_option 'ssh-options', :desc => 'SSH options (JSON)', :default => ENV['CRONICLE_SSH_OPTIONS']
|
12
13
|
class_option 'connection-timeout', :desc => 'SSH connection timeout', :type => :numeric, :default => nil
|
13
14
|
class_option 'concurrency', :desc => 'SSH concurrency', :type => :numeric, :default => Cronicle::Client::DEFAULTS[:concurrency]
|
14
15
|
class_option 'libexec', :desc => 'Cronicle libexec path', :default => Cronicle::Client::DEFAULTS[:libexec]
|
@@ -82,6 +83,7 @@ class Cronicle::CLI < Thor
|
|
82
83
|
def client_options
|
83
84
|
client_opts = {
|
84
85
|
:sudo_password => options['sudo-password'],
|
86
|
+
:ssh_user => options['ssh-user'],
|
85
87
|
:concurrency => options['concurrency'],
|
86
88
|
:libexec => options['libexec'],
|
87
89
|
:dry_run => options['dry-run'],
|
@@ -112,7 +114,12 @@ class Cronicle::CLI < Thor
|
|
112
114
|
end
|
113
115
|
end
|
114
116
|
|
115
|
-
|
117
|
+
ssh_config = options['ssh-config']
|
118
|
+
|
119
|
+
if ssh_config
|
120
|
+
ssh_config = File.expand_path(ssh_config)
|
121
|
+
ssh_options[:config] = ssh_config if File.exist?(ssh_config)
|
122
|
+
end
|
116
123
|
|
117
124
|
SSHKit::Backend::Netssh.configure do |ssh|
|
118
125
|
ssh.connection_timeout = conn_timeout if conn_timeout
|
data/lib/cronicle/client.rb
CHANGED
@@ -25,6 +25,10 @@ class Cronicle::Client
|
|
25
25
|
end
|
26
26
|
|
27
27
|
parallel_each(jobs_by_host) do |host, jobs_by_user|
|
28
|
+
if @options[:ssh_user] and host !~ /@/
|
29
|
+
host = @options[:ssh_user] + '@' + host
|
30
|
+
end
|
31
|
+
|
28
32
|
run_driver(host) do |driver|
|
29
33
|
jobs_by_user.each do |user, jobs|
|
30
34
|
driver.execute_job(user, jobs)
|
@@ -7,7 +7,7 @@ class SSHKit::Backend::Netssh
|
|
7
7
|
def sudo(command, *args)
|
8
8
|
opts = args.last.kind_of?(Hash) ? args.pop : {}
|
9
9
|
|
10
|
-
retval = with_sudo_password(host.options[:sudo_password]) do
|
10
|
+
retval = with_sudo_password(host.options[:sudo_password] || '') do
|
11
11
|
with_sudo = [:sudo, '-p', SUDO_PROMPT, '-S']
|
12
12
|
with_sudo << '-u' << opts[:user] if opts[:user]
|
13
13
|
with_sudo.concat(args)
|
data/lib/cronicle/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cronicle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Genki Sugawara
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sourcify
|