mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-27 07:34:15 +02:00
parent
74830dd8dd
commit
bed490829a
96
agent/windows-setup-agent/AgentWizard.Designer.cs
generated
96
agent/windows-setup-agent/AgentWizard.Designer.cs
generated
@ -55,6 +55,8 @@
|
|||||||
this.rdoNewMaster = new System.Windows.Forms.RadioButton();
|
this.rdoNewMaster = new System.Windows.Forms.RadioButton();
|
||||||
this.tbcPages = new System.Windows.Forms.TabControl();
|
this.tbcPages = new System.Windows.Forms.TabControl();
|
||||||
this.tabRetrieveCertificate = new System.Windows.Forms.TabPage();
|
this.tabRetrieveCertificate = new System.Windows.Forms.TabPage();
|
||||||
|
this.lblRetrieveCertificate = new System.Windows.Forms.Label();
|
||||||
|
this.prgRetrieveCertificate = new System.Windows.Forms.ProgressBar();
|
||||||
this.tabVerifyCertificate = new System.Windows.Forms.TabPage();
|
this.tabVerifyCertificate = new System.Windows.Forms.TabPage();
|
||||||
this.grpX509Fields = new System.Windows.Forms.GroupBox();
|
this.grpX509Fields = new System.Windows.Forms.GroupBox();
|
||||||
this.txtX509Field = new System.Windows.Forms.TextBox();
|
this.txtX509Field = new System.Windows.Forms.TextBox();
|
||||||
@ -66,9 +68,12 @@
|
|||||||
this.lblX509Subject = new System.Windows.Forms.Label();
|
this.lblX509Subject = new System.Windows.Forms.Label();
|
||||||
this.lblX509Issuer = new System.Windows.Forms.Label();
|
this.lblX509Issuer = new System.Windows.Forms.Label();
|
||||||
this.lblX509Prompt = new System.Windows.Forms.Label();
|
this.lblX509Prompt = new System.Windows.Forms.Label();
|
||||||
|
this.tabError = new System.Windows.Forms.TabPage();
|
||||||
this.picBanner = new System.Windows.Forms.PictureBox();
|
this.picBanner = new System.Windows.Forms.PictureBox();
|
||||||
this.lblRetrieveCertificate = new System.Windows.Forms.Label();
|
this.lblError = new System.Windows.Forms.Label();
|
||||||
this.prgRetrieveCertificate = new System.Windows.Forms.ProgressBar();
|
this.txtError = new System.Windows.Forms.TextBox();
|
||||||
|
this.lblTicket = new System.Windows.Forms.Label();
|
||||||
|
this.txtTicket = new System.Windows.Forms.TextBox();
|
||||||
this.tabFinish.SuspendLayout();
|
this.tabFinish.SuspendLayout();
|
||||||
this.tabConfigure.SuspendLayout();
|
this.tabConfigure.SuspendLayout();
|
||||||
this.tabParameters.SuspendLayout();
|
this.tabParameters.SuspendLayout();
|
||||||
@ -78,6 +83,7 @@
|
|||||||
this.tabRetrieveCertificate.SuspendLayout();
|
this.tabRetrieveCertificate.SuspendLayout();
|
||||||
this.tabVerifyCertificate.SuspendLayout();
|
this.tabVerifyCertificate.SuspendLayout();
|
||||||
this.grpX509Fields.SuspendLayout();
|
this.grpX509Fields.SuspendLayout();
|
||||||
|
this.tabError.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.picBanner)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.picBanner)).BeginInit();
|
||||||
this.SuspendLayout();
|
this.SuspendLayout();
|
||||||
//
|
//
|
||||||
@ -163,6 +169,8 @@
|
|||||||
//
|
//
|
||||||
// tabParameters
|
// tabParameters
|
||||||
//
|
//
|
||||||
|
this.tabParameters.Controls.Add(this.txtTicket);
|
||||||
|
this.tabParameters.Controls.Add(this.lblTicket);
|
||||||
this.tabParameters.Controls.Add(this.txtInstanceName);
|
this.tabParameters.Controls.Add(this.txtInstanceName);
|
||||||
this.tabParameters.Controls.Add(this.lblInstanceName);
|
this.tabParameters.Controls.Add(this.lblInstanceName);
|
||||||
this.tabParameters.Controls.Add(this.groupBox2);
|
this.tabParameters.Controls.Add(this.groupBox2);
|
||||||
@ -197,7 +205,7 @@
|
|||||||
this.groupBox2.Controls.Add(this.txtListenerPort);
|
this.groupBox2.Controls.Add(this.txtListenerPort);
|
||||||
this.groupBox2.Controls.Add(this.lblListenerPort);
|
this.groupBox2.Controls.Add(this.lblListenerPort);
|
||||||
this.groupBox2.Controls.Add(this.rdoListener);
|
this.groupBox2.Controls.Add(this.rdoListener);
|
||||||
this.groupBox2.Location = new System.Drawing.Point(8, 330);
|
this.groupBox2.Location = new System.Drawing.Point(8, 359);
|
||||||
this.groupBox2.Name = "groupBox2";
|
this.groupBox2.Name = "groupBox2";
|
||||||
this.groupBox2.Size = new System.Drawing.Size(601, 111);
|
this.groupBox2.Size = new System.Drawing.Size(601, 111);
|
||||||
this.groupBox2.TabIndex = 2;
|
this.groupBox2.TabIndex = 2;
|
||||||
@ -253,7 +261,7 @@
|
|||||||
this.groupBox1.Controls.Add(this.lvwEndpoints);
|
this.groupBox1.Controls.Add(this.lvwEndpoints);
|
||||||
this.groupBox1.Controls.Add(this.rdoNoMaster);
|
this.groupBox1.Controls.Add(this.rdoNoMaster);
|
||||||
this.groupBox1.Controls.Add(this.rdoNewMaster);
|
this.groupBox1.Controls.Add(this.rdoNewMaster);
|
||||||
this.groupBox1.Location = new System.Drawing.Point(8, 48);
|
this.groupBox1.Location = new System.Drawing.Point(8, 77);
|
||||||
this.groupBox1.Name = "groupBox1";
|
this.groupBox1.Name = "groupBox1";
|
||||||
this.groupBox1.Size = new System.Drawing.Size(601, 276);
|
this.groupBox1.Size = new System.Drawing.Size(601, 276);
|
||||||
this.groupBox1.TabIndex = 1;
|
this.groupBox1.TabIndex = 1;
|
||||||
@ -337,6 +345,7 @@
|
|||||||
this.tbcPages.Controls.Add(this.tabVerifyCertificate);
|
this.tbcPages.Controls.Add(this.tabVerifyCertificate);
|
||||||
this.tbcPages.Controls.Add(this.tabConfigure);
|
this.tbcPages.Controls.Add(this.tabConfigure);
|
||||||
this.tbcPages.Controls.Add(this.tabFinish);
|
this.tbcPages.Controls.Add(this.tabFinish);
|
||||||
|
this.tbcPages.Controls.Add(this.tabError);
|
||||||
this.tbcPages.ItemSize = new System.Drawing.Size(0, 1);
|
this.tbcPages.ItemSize = new System.Drawing.Size(0, 1);
|
||||||
this.tbcPages.Location = new System.Drawing.Point(0, 80);
|
this.tbcPages.Location = new System.Drawing.Point(0, 80);
|
||||||
this.tbcPages.Margin = new System.Windows.Forms.Padding(0);
|
this.tbcPages.Margin = new System.Windows.Forms.Padding(0);
|
||||||
@ -359,6 +368,22 @@
|
|||||||
this.tabRetrieveCertificate.Text = "Checking Certificate";
|
this.tabRetrieveCertificate.Text = "Checking Certificate";
|
||||||
this.tabRetrieveCertificate.UseVisualStyleBackColor = true;
|
this.tabRetrieveCertificate.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
|
// lblRetrieveCertificate
|
||||||
|
//
|
||||||
|
this.lblRetrieveCertificate.AutoSize = true;
|
||||||
|
this.lblRetrieveCertificate.Location = new System.Drawing.Point(164, 229);
|
||||||
|
this.lblRetrieveCertificate.Name = "lblRetrieveCertificate";
|
||||||
|
this.lblRetrieveCertificate.Size = new System.Drawing.Size(110, 13);
|
||||||
|
this.lblRetrieveCertificate.TabIndex = 3;
|
||||||
|
this.lblRetrieveCertificate.Text = "Checking certificate...";
|
||||||
|
//
|
||||||
|
// prgRetrieveCertificate
|
||||||
|
//
|
||||||
|
this.prgRetrieveCertificate.Location = new System.Drawing.Point(164, 248);
|
||||||
|
this.prgRetrieveCertificate.Name = "prgRetrieveCertificate";
|
||||||
|
this.prgRetrieveCertificate.Size = new System.Drawing.Size(289, 23);
|
||||||
|
this.prgRetrieveCertificate.TabIndex = 2;
|
||||||
|
//
|
||||||
// tabVerifyCertificate
|
// tabVerifyCertificate
|
||||||
//
|
//
|
||||||
this.tabVerifyCertificate.Controls.Add(this.grpX509Fields);
|
this.tabVerifyCertificate.Controls.Add(this.grpX509Fields);
|
||||||
@ -463,6 +488,18 @@
|
|||||||
this.lblX509Prompt.TabIndex = 0;
|
this.lblX509Prompt.TabIndex = 0;
|
||||||
this.lblX509Prompt.Text = "Please verify the master\'s SSL certificate:";
|
this.lblX509Prompt.Text = "Please verify the master\'s SSL certificate:";
|
||||||
//
|
//
|
||||||
|
// tabError
|
||||||
|
//
|
||||||
|
this.tabError.Controls.Add(this.txtError);
|
||||||
|
this.tabError.Controls.Add(this.lblError);
|
||||||
|
this.tabError.Location = new System.Drawing.Point(4, 5);
|
||||||
|
this.tabError.Name = "tabError";
|
||||||
|
this.tabError.Padding = new System.Windows.Forms.Padding(3);
|
||||||
|
this.tabError.Size = new System.Drawing.Size(617, 500);
|
||||||
|
this.tabError.TabIndex = 8;
|
||||||
|
this.tabError.Text = "Error";
|
||||||
|
this.tabError.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
// picBanner
|
// picBanner
|
||||||
//
|
//
|
||||||
this.picBanner.Image = global::Icinga.Properties.Resources.icinga_banner;
|
this.picBanner.Image = global::Icinga.Properties.Resources.icinga_banner;
|
||||||
@ -472,21 +509,41 @@
|
|||||||
this.picBanner.TabIndex = 1;
|
this.picBanner.TabIndex = 1;
|
||||||
this.picBanner.TabStop = false;
|
this.picBanner.TabStop = false;
|
||||||
//
|
//
|
||||||
// lblRetrieveCertificate
|
// lblError
|
||||||
//
|
//
|
||||||
this.lblRetrieveCertificate.AutoSize = true;
|
this.lblError.AutoSize = true;
|
||||||
this.lblRetrieveCertificate.Location = new System.Drawing.Point(164, 229);
|
this.lblError.Location = new System.Drawing.Point(8, 12);
|
||||||
this.lblRetrieveCertificate.Name = "lblRetrieveCertificate";
|
this.lblError.Name = "lblError";
|
||||||
this.lblRetrieveCertificate.Size = new System.Drawing.Size(110, 13);
|
this.lblError.Size = new System.Drawing.Size(209, 13);
|
||||||
this.lblRetrieveCertificate.TabIndex = 3;
|
this.lblError.TabIndex = 0;
|
||||||
this.lblRetrieveCertificate.Text = "Checking certificate...";
|
this.lblError.Text = "An error occurred while setting up Icinga 2:";
|
||||||
//
|
//
|
||||||
// prgRetrieveCertificate
|
// txtError
|
||||||
//
|
//
|
||||||
this.prgRetrieveCertificate.Location = new System.Drawing.Point(164, 248);
|
this.txtError.Font = new System.Drawing.Font("Courier New", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
|
||||||
this.prgRetrieveCertificate.Name = "prgRetrieveCertificate";
|
this.txtError.Location = new System.Drawing.Point(11, 38);
|
||||||
this.prgRetrieveCertificate.Size = new System.Drawing.Size(289, 23);
|
this.txtError.Multiline = true;
|
||||||
this.prgRetrieveCertificate.TabIndex = 2;
|
this.txtError.Name = "txtError";
|
||||||
|
this.txtError.ReadOnly = true;
|
||||||
|
this.txtError.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
|
||||||
|
this.txtError.Size = new System.Drawing.Size(598, 397);
|
||||||
|
this.txtError.TabIndex = 1;
|
||||||
|
//
|
||||||
|
// lblTicket
|
||||||
|
//
|
||||||
|
this.lblTicket.AutoSize = true;
|
||||||
|
this.lblTicket.Location = new System.Drawing.Point(9, 48);
|
||||||
|
this.lblTicket.Name = "lblTicket";
|
||||||
|
this.lblTicket.Size = new System.Drawing.Size(71, 13);
|
||||||
|
this.lblTicket.TabIndex = 4;
|
||||||
|
this.lblTicket.Text = "Agent Ticket:";
|
||||||
|
//
|
||||||
|
// txtTicket
|
||||||
|
//
|
||||||
|
this.txtTicket.Location = new System.Drawing.Point(98, 45);
|
||||||
|
this.txtTicket.Name = "txtTicket";
|
||||||
|
this.txtTicket.Size = new System.Drawing.Size(240, 20);
|
||||||
|
this.txtTicket.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// AgentWizard
|
// AgentWizard
|
||||||
//
|
//
|
||||||
@ -523,6 +580,8 @@
|
|||||||
this.tabVerifyCertificate.PerformLayout();
|
this.tabVerifyCertificate.PerformLayout();
|
||||||
this.grpX509Fields.ResumeLayout(false);
|
this.grpX509Fields.ResumeLayout(false);
|
||||||
this.grpX509Fields.PerformLayout();
|
this.grpX509Fields.PerformLayout();
|
||||||
|
this.tabError.ResumeLayout(false);
|
||||||
|
this.tabError.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.picBanner)).EndInit();
|
((System.ComponentModel.ISupportInitialize)(this.picBanner)).EndInit();
|
||||||
this.ResumeLayout(false);
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
@ -570,6 +629,11 @@
|
|||||||
private System.Windows.Forms.TabPage tabRetrieveCertificate;
|
private System.Windows.Forms.TabPage tabRetrieveCertificate;
|
||||||
private System.Windows.Forms.Label lblRetrieveCertificate;
|
private System.Windows.Forms.Label lblRetrieveCertificate;
|
||||||
private System.Windows.Forms.ProgressBar prgRetrieveCertificate;
|
private System.Windows.Forms.ProgressBar prgRetrieveCertificate;
|
||||||
|
private System.Windows.Forms.TabPage tabError;
|
||||||
|
private System.Windows.Forms.TextBox txtError;
|
||||||
|
private System.Windows.Forms.Label lblError;
|
||||||
|
private System.Windows.Forms.TextBox txtTicket;
|
||||||
|
private System.Windows.Forms.Label lblTicket;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,8 @@ namespace Icinga
|
|||||||
{
|
{
|
||||||
public partial class AgentWizard : Form
|
public partial class AgentWizard : Form
|
||||||
{
|
{
|
||||||
|
private string _TrustedFile;
|
||||||
|
|
||||||
public AgentWizard()
|
public AgentWizard()
|
||||||
{
|
{
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
@ -94,92 +96,113 @@ namespace Icinga
|
|||||||
lblConfigStatus.Text = message;
|
lblConfigStatus.Text = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ShowErrorText(string text)
|
||||||
|
{
|
||||||
|
if (InvokeRequired) {
|
||||||
|
Invoke((MethodInvoker)delegate { ShowErrorText(text); });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
txtError.Text = text;
|
||||||
|
tbcPages.SelectedTab = tabError;
|
||||||
|
}
|
||||||
|
|
||||||
|
private bool RunProcess(string filename, string arguments, out string output)
|
||||||
|
{
|
||||||
|
ProcessStartInfo psi = new ProcessStartInfo();
|
||||||
|
psi.FileName = filename;
|
||||||
|
psi.Arguments = arguments;
|
||||||
|
psi.CreateNoWindow = true;
|
||||||
|
psi.UseShellExecute = false;
|
||||||
|
psi.RedirectStandardOutput = true;
|
||||||
|
psi.RedirectStandardError = true;
|
||||||
|
|
||||||
|
String result = "";
|
||||||
|
|
||||||
|
using (Process proc = Process.Start(psi)) {
|
||||||
|
proc.ErrorDataReceived += delegate(object sender, DataReceivedEventArgs args) {
|
||||||
|
result += args.Data + "\r\n";
|
||||||
|
};
|
||||||
|
proc.OutputDataReceived += delegate(object sender, DataReceivedEventArgs args) {
|
||||||
|
result += args.Data + "\r\n";
|
||||||
|
};
|
||||||
|
proc.BeginOutputReadLine();
|
||||||
|
proc.BeginErrorReadLine();
|
||||||
|
proc.WaitForExit();
|
||||||
|
|
||||||
|
output = result;
|
||||||
|
|
||||||
|
if (proc.ExitCode != 0)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private void VerifyCertificate(string host, string port)
|
private void VerifyCertificate(string host, string port)
|
||||||
{
|
{
|
||||||
SetRetrievalStatus(25);
|
SetRetrievalStatus(25);
|
||||||
|
|
||||||
string pathPrefix = Icinga2InstallDir + "\\etc\\icinga2\\pki\\" + txtInstanceName.Text;
|
string pathPrefix = Icinga2InstallDir + "\\etc\\icinga2\\pki\\" + txtInstanceName.Text;
|
||||||
|
|
||||||
ProcessStartInfo psi;
|
string output;
|
||||||
|
|
||||||
if (!File.Exists(pathPrefix + ".crt")) {
|
if (!File.Exists(pathPrefix + ".crt")) {
|
||||||
psi = new ProcessStartInfo();
|
if (!RunProcess(Icinga2InstallDir + "\\sbin\\icinga2.exe",
|
||||||
psi.FileName = Icinga2InstallDir + "\\sbin\\icinga2.exe";
|
"pki new-cert --cn \"" + txtInstanceName.Text + "\" --keyfile \"" + pathPrefix + ".key\" --certfile \"" + pathPrefix + ".crt\"",
|
||||||
psi.Arguments = "pki new-cert --cn \"" + txtInstanceName.Text + "\" --keyfile \"" + pathPrefix + ".key\" --certfile \"" + pathPrefix + ".crt\"";
|
out output)) {
|
||||||
psi.CreateNoWindow = true;
|
ShowErrorText(output);
|
||||||
psi.UseShellExecute = false;
|
return;
|
||||||
|
|
||||||
using (Process proc = Process.Start(psi)) {
|
|
||||||
proc.WaitForExit();
|
|
||||||
|
|
||||||
if (proc.ExitCode != 0) {
|
|
||||||
Invoke((MethodInvoker)delegate { FatalError("The Windows service could not be installed."); });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SetRetrievalStatus(50);
|
SetRetrievalStatus(50);
|
||||||
|
|
||||||
string trustedfile = Path.GetTempFileName();
|
_TrustedFile = Path.GetTempFileName();
|
||||||
|
|
||||||
psi = new ProcessStartInfo();
|
if (!RunProcess(Icinga2InstallDir + "\\sbin\\icinga2.exe",
|
||||||
psi.FileName = Icinga2InstallDir + "\\sbin\\icinga2.exe";
|
"pki save-cert --host \"" + host + "\" --port \"" + port + "\" --keyfile \"" + pathPrefix + ".key\" --certfile \"" + pathPrefix + ".crt\" --trustedfile \"" + _TrustedFile + "\"",
|
||||||
psi.Arguments = "pki save-cert --host \"" + host + "\" --port \"" + port + "\" --keyfile \"" + pathPrefix + ".key\" --certfile \"" + pathPrefix + ".crt\" --trustedfile \"" + trustedfile + "\"";
|
out output)) {
|
||||||
psi.CreateNoWindow = true;
|
ShowErrorText(output);
|
||||||
psi.UseShellExecute = false;
|
return;
|
||||||
|
|
||||||
using (Process proc = Process.Start(psi)) {
|
|
||||||
proc.WaitForExit();
|
|
||||||
|
|
||||||
if (proc.ExitCode != 0) {
|
|
||||||
Invoke((MethodInvoker)delegate { FatalError("Could not retrieve the master's X509 certificate."); });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SetRetrievalStatus(100);
|
SetRetrievalStatus(100);
|
||||||
|
|
||||||
X509Certificate2 cert = new X509Certificate2(trustedfile);
|
X509Certificate2 cert = new X509Certificate2(_TrustedFile);
|
||||||
Invoke((MethodInvoker)delegate { ShowCertificatePrompt(cert); });
|
Invoke((MethodInvoker)delegate { ShowCertificatePrompt(cert); });
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ConfigureService()
|
private void ConfigureService()
|
||||||
{
|
{
|
||||||
SetConfigureStatus(0, "Updating configuration files...");
|
SetConfigureStatus(0, "Updating configuration files...");
|
||||||
using (FileStream fp = File.Open(Icinga2InstallDir + "\\etc\\icinga2\\features-available\\agent.conf", FileMode.Create)) {
|
|
||||||
using (StreamWriter sw = new StreamWriter(fp, Encoding.ASCII)) {
|
|
||||||
sw.Write(
|
|
||||||
"/**\n" +
|
|
||||||
" * The agent listener accepts checks from agents.\n" +
|
|
||||||
" */\n" +
|
|
||||||
"\n" +
|
|
||||||
"library \"agent\"\n" +
|
|
||||||
"\n" +
|
|
||||||
"object AgentListener \"agent\" {\n" +
|
|
||||||
" cert_path = SysconfDir + \"/icinga2/pki/agent/agent.crt\"\n" +
|
|
||||||
" key_path = SysconfDir + \"/icinga2/pki/agent/agent.key\"\n" +
|
|
||||||
" ca_path = SysconfDir + \"/icinga2/pki/agent/ca.crt\"\n"
|
|
||||||
);
|
|
||||||
|
|
||||||
/*if (rdoNoMaster.Checked)
|
string output;
|
||||||
sw.Write(" upstream_name = \"{0}\"\n", txtMasterInstance.Text);*/
|
|
||||||
|
|
||||||
if (rdoListener.Checked)
|
string args = "";
|
||||||
sw.Write(" bind_port = \"{0}\"\n", txtListenerPort.Text);
|
|
||||||
|
|
||||||
/*if (rdoConnect.Checked)
|
if (rdoNewMaster.Checked)
|
||||||
sw.Write(
|
args += " --master";
|
||||||
" upstream_host = \"{0}\"\n" +
|
|
||||||
" upstream_port = \"{1}\"\n", txtPeerHost.Text, txtPeerPort.Text
|
|
||||||
);*/
|
|
||||||
|
|
||||||
sw.Write("}\n");
|
Invoke((MethodInvoker)delegate {
|
||||||
|
foreach (ListViewItem lvi in lvwEndpoints.Items) {
|
||||||
|
args += " --endpoint " + lvi.SubItems[0].Text + "," + lvi.SubItems[1].Text;
|
||||||
}
|
}
|
||||||
}
|
});
|
||||||
|
|
||||||
EnableFeature("api");
|
if (rdoListener.Checked)
|
||||||
EnableFeature("checker");
|
args += " --listen ::," + txtListenerPort.Text;
|
||||||
|
|
||||||
|
args += " --ticket " + txtTicket.Text;
|
||||||
|
args += " --trustedcert " + _TrustedFile;
|
||||||
|
args += " --cn " + txtInstanceName.Text;
|
||||||
|
|
||||||
|
if (!RunProcess(Icinga2InstallDir + "\\sbin\\icinga2.exe",
|
||||||
|
"agent setup" + args,
|
||||||
|
out output)) {
|
||||||
|
ShowErrorText(output);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
SetConfigureStatus(50, "Setting ACLs for the Icinga 2 directory...");
|
SetConfigureStatus(50, "Setting ACLs for the Icinga 2 directory...");
|
||||||
DirectoryInfo di = new DirectoryInfo(Icinga2InstallDir);
|
DirectoryInfo di = new DirectoryInfo(Icinga2InstallDir);
|
||||||
@ -192,29 +215,15 @@ namespace Icinga
|
|||||||
|
|
||||||
SetConfigureStatus(75, "Installing the Icinga 2 service...");
|
SetConfigureStatus(75, "Installing the Icinga 2 service...");
|
||||||
|
|
||||||
ProcessStartInfo psi = new ProcessStartInfo();
|
RunProcess(Icinga2InstallDir + "\\sbin\\icinga2.exe",
|
||||||
psi.FileName = Icinga2InstallDir + "\\sbin\\icinga2.exe";
|
"--scm-uninstall",
|
||||||
psi.Arguments = "--scm-uninstall";
|
out output);
|
||||||
psi.CreateNoWindow = true;
|
|
||||||
psi.UseShellExecute = false;
|
|
||||||
|
|
||||||
using (Process proc = Process.Start(psi)) {
|
if (!RunProcess(Icinga2InstallDir + "\\sbin\\icinga2.exe",
|
||||||
proc.WaitForExit();
|
"--scm-install daemon",
|
||||||
}
|
out output)) {
|
||||||
|
ShowErrorText(output);
|
||||||
psi = new ProcessStartInfo();
|
return;
|
||||||
psi.FileName = Icinga2InstallDir + "\\sbin\\icinga2.exe";
|
|
||||||
psi.Arguments = "--scm-install daemon";
|
|
||||||
psi.CreateNoWindow = true;
|
|
||||||
psi.UseShellExecute = false;
|
|
||||||
|
|
||||||
using (Process proc = Process.Start(psi)) {
|
|
||||||
proc.WaitForExit();
|
|
||||||
|
|
||||||
if (proc.ExitCode != 0) {
|
|
||||||
Invoke((MethodInvoker)delegate { FatalError("The Windows service could not be installed."); });
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SetConfigureStatus(100, "Finished.");
|
SetConfigureStatus(100, "Finished.");
|
||||||
@ -256,6 +265,11 @@ namespace Icinga
|
|||||||
|
|
||||||
private void btnBack_Click(object sender, EventArgs e)
|
private void btnBack_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
if (tbcPages.SelectedTab == tabError) {
|
||||||
|
tbcPages.SelectedIndex = 0;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int offset = 1;
|
int offset = 1;
|
||||||
|
|
||||||
if (tbcPages.SelectedTab == tabVerifyCertificate)
|
if (tbcPages.SelectedTab == tabVerifyCertificate)
|
||||||
@ -272,6 +286,11 @@ namespace Icinga
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (txtTicket.Text.Length == 0) {
|
||||||
|
Warning("Please enter an agent ticket.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (rdoNoMaster.Checked && lvwEndpoints.Items.Count == 0) {
|
if (rdoNoMaster.Checked && lvwEndpoints.Items.Count == 0) {
|
||||||
Warning("You need to add at least one master endpoint.");
|
Warning("You need to add at least one master endpoint.");
|
||||||
return;
|
return;
|
||||||
@ -283,7 +302,7 @@ namespace Icinga
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tbcPages.SelectedTab == tabFinish)
|
if (tbcPages.SelectedTab == tabFinish || tbcPages.SelectedTab == tabError)
|
||||||
Application.Exit();
|
Application.Exit();
|
||||||
|
|
||||||
tbcPages.SelectedIndex++;
|
tbcPages.SelectedIndex++;
|
||||||
@ -298,7 +317,7 @@ namespace Icinga
|
|||||||
{
|
{
|
||||||
Refresh();
|
Refresh();
|
||||||
|
|
||||||
btnBack.Enabled = (tbcPages.SelectedTab == tabVerifyCertificate);
|
btnBack.Enabled = (tbcPages.SelectedTab == tabVerifyCertificate || tbcPages.SelectedTab == tabError);
|
||||||
btnNext.Enabled = (tbcPages.SelectedTab == tabParameters || tbcPages.SelectedTab == tabVerifyCertificate || tbcPages.SelectedTab == tabFinish);
|
btnNext.Enabled = (tbcPages.SelectedTab == tabParameters || tbcPages.SelectedTab == tabVerifyCertificate || tbcPages.SelectedTab == tabFinish);
|
||||||
|
|
||||||
if (tbcPages.SelectedTab == tabFinish) {
|
if (tbcPages.SelectedTab == tabFinish) {
|
||||||
|
@ -57,7 +57,7 @@ void AgentSetupCommand::InitParameters(boost::program_options::options_descripti
|
|||||||
("ticket", po::value<std::string>(), "Generated ticket number for this request")
|
("ticket", po::value<std::string>(), "Generated ticket number for this request")
|
||||||
("trustedcert", po::value<std::string>(), "Trusted master certificate file")
|
("trustedcert", po::value<std::string>(), "Trusted master certificate file")
|
||||||
("cn", po::value<std::string>(), "The certificate's common name")
|
("cn", po::value<std::string>(), "The certificate's common name")
|
||||||
("master", po::value<std::string>(), "Use setup for a master instance");
|
("master", "Use setup for a master instance");
|
||||||
}
|
}
|
||||||
|
|
||||||
std::vector<String> AgentSetupCommand::GetArgumentSuggestions(const String& argument, const String& word) const
|
std::vector<String> AgentSetupCommand::GetArgumentSuggestions(const String& argument, const String& word) const
|
||||||
|
Loading…
x
Reference in New Issue
Block a user