Skip to content

Instantly share code, notes, and snippets.

@grimrose
Created April 15, 2014 15:52
Show Gist options
  • Save grimrose/ec18ac514d3ba1fe5e4f to your computer and use it in GitHub Desktop.
Save grimrose/ec18ac514d3ba1fe5e4f to your computer and use it in GitHub Desktop.
Gradle SSH Pluginでfileのpushとpullの使い方サンプル (※未検証)
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'org.hidetake:gradle-ssh-plugin:0.3.2'
}
}
apply plugin: 'ssh'
def servers = [
[name: 'web01', address: '192.168.1.111', user: 'user01', role: 'web'],
[name: 'web02', address: '192.168.1.112', user: 'user02', role: 'web'],
[name: 'db01', address: '192.168.1.201', user: 'user01', role: 'db'],
[name: 'db02', address: '192.168.1.202', user: 'user02', role: 'db'],
[name: 'master', address: '192.168.1.100', user: 'master', role: 'master'],
]
servers.each { server ->
remotes.create(server.name) {
role(server.role)
host = server.address
user = server.user
}
}
task collectFile << {
sshexec {
session(remotes.role('web')) {
mkdir "logs/access_logs/${remote.name}"
get('/var/log/httpd/access_log', "logs/access_logs/${remote.name}/")
}
session(remotes.role('db')) {
mkdir "logs/postgresql_logs/${remote.name}"
get('/var/log/postgresql.log', "logs/postgresql_logs/${remote.name}")
}
}
}
task pushFile << {
sshexec {
session(remotes.role('master')) {
execute("mkdir -p /var/tmp/logs")
put('logs', '/var/tmp/logs')
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment