通过gradle任务连接到vagrant

时间:2016-11-15 14:44:31

标签: gradle vagrant

我相对较新,我想要创建一个将运行并连接到“vagrant ssh”的gr​​adle任务。似乎无法通过gradle运行交互式shell。

我既使用了Exec插件又使用了另一种方法来通过expectJ生成“vagrant ssh”,然后使用“interact()”方法,但它们都没有工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您可以查看gradle-vagrant plugin

该插件具有特定的task来处理vagrantX命令(例如vagrant up / ssh ...)

例如,查看如何直接从gradle脚本运行命令

vagrant {
    boxDir = file('~/dev/my-vagrant-box')

    environmentVariables {
        variable 'IP', '192.168.1.33'
        variable 'OPERATINGSYSTEM', 'redhat'
    }

    installation {
        validate = false
    }
}

import com.bmuschko.gradle.vagrant.tasks.Vagrant
import com.bmuschko.gradle.vagrant.tasks.VagrantSsh

task vagrantListsBoxes(type: Vagrant) {
    description = 'Outputs a list of available Vagrant boxes.'
    commands = ['box', 'list']
}

task vagrantEcho(type: VagrantSsh) {
    description = 'Runs remote SSH command in Vagrant box.'
    sshCommand = "echo 'hello'"

    dependsOn vagrantUp
    finalizedBy vagrantDestroy
}