从Java运行Ansible Playbook

有没有一种方法可以从java中执行ansible剧本。请帮我参考,找不到任何好的教程。

iCMS 回答:从Java运行Ansible Playbook

最简单的方法是使用ProcessBuilder运行命令:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class AnsibleServive {
    public static void main(String[] args) {
        runCommand("ansible-playbook test.yml -i host.ini");
    }
    private static void runCommand(String command) {
        ProcessBuilder processBuilder = new ProcessBuilder();
        processBuilder.command("bash","-c",command);

        try {
            Process process = processBuilder.start();

            StringBuilder output = new StringBuilder();
            StringBuilder errOutput = new StringBuilder();

            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));

            String line;
            while ((line = reader.readLine()) != null) {
                output.append(line + "\n");
            }

            BufferedReader errReader = new BufferedReader(new InputStreamReader(process.getErrorStream()));

            while ((line = errReader.readLine()) != null) {
                errOutput.append(line + "\n");
            }

            int exitVal = process.waitFor();
            if (exitVal == 0) {
                System.out.println("Command Successfully executed.");
                System.out.println(output);
            } else {
                System.err.println("Error ocured during running command.");
                System.out.println(output);
                System.err.println(errOutput);

            }

        } catch (IOException | InterruptedException e) {
            System.err.println("Failed to execute command.");
            e.printStackTrace();
        }
    }
}
本文链接:https://www.f2er.com/1990112.html

大家都在问