public void configHostName() throws IOException { expect.sendLine("echo '' > /etc/hosts"); ready(ROOT_USER); for (HostInfo info : BuildEnv.ALL_HOST) { expect.sendLine("echo '" + info.getIp() + " " + info.getHostName() + "' >> /etc/hosts"); ready(ROOT_USER); } }
public void copyConfig(boolean isFirst) throws IOException, TemplateException { genServerConfFile(); expect.sendLine( "\\cp -f /vagrant/src/main/resources/template/server.cnf." + hostInfo.getHostName() + " /etc/my.cnf.d/server.cnf"); ready(ROOT_USER); if (isFirst) { configMariaDBFirst(); } }
public void genServerConfFile() throws IOException, TemplateException { Configuration cfg = new Configuration(Configuration.VERSION_2_3_23); cfg.setObjectWrapper(ObjectWrapper.BEANS_WRAPPER); cfg.setClassForTemplateLoading(this.getClass(), "/"); Template template = cfg.getTemplate("template/galera_server.ftl"); // Build the data-model Map<String, Object> data = new HashMap<>(); data.put("ownHostInfo", hostInfo); data.put("otherHostInfos", otherHostInfo); // Console output String path = getClass().getClassLoader().getResource("").getFile(); FileWriter out = new FileWriter(path + "/template/server.cnf." + hostInfo.getHostName()); template.process(data, out); out.flush(); out.close(); }
public void configSSH(String user) throws IOException { System.out.println("~~~~~~~~~~~~~configSSH start~~~~~~~~~~~~~~"); this.expect.sendLine("ssh-keygen -t rsa -P \"\" -f ~/.ssh/id_rsa"); ready(user); this.expect.sendLine("cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys"); ready(user); this.expect.sendLine("\\cp -f /vagrant/src/main/resources/ssh/config ~/.ssh"); ready(user); for (HostInfo hi : otherHostInfo) { String copyId = "ssh-copy-id -i ~/.ssh/id_rsa.pub " + user + "@" + hi.getHostName(); this.expect.sendLine(copyId); ready(user); } this.expect.sendLine("chmod 700 -R ~/.ssh"); ready(user); System.out.println("~~~~~~~~~~~~~configSSH 成功~~~~~~~~~~~~~~"); }
private void ready(String user) throws IOException { expect.expect(contains(user + "@" + hostInfo.getHostName())); System.out.flush(); }