* [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt
@ 2024-05-15 10:32 Aaron Lauterer
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options Aaron Lauterer
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Aaron Lauterer @ 2024-05-15 10:32 UTC (permalink / raw)
To: pve-devel
on clusters where the ssh known hosts info is only stored in the pmxcfs,
it broke the mgmt of the qdevice. By adding the necessary ssh options on
each intra cluster ssh call, we can fix this.
The second patch is optional and adjusts the touched code to fit better
into the max line lenghts.
I put it into a separate patch as I wasn't 100% sure how to format it,
especially the first instance in that patch.
Aaron Lauterer (2):
fix #5461: pvecm: ssh: adapt intra cluster ssh options
pvecm: qdevice: adjust line lengths
src/PVE/CLI/pvecm.pm | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)
--
2.39.2
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options
2024-05-15 10:32 [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt Aaron Lauterer
@ 2024-05-15 10:32 ` Aaron Lauterer
2024-05-16 10:17 ` Fabian Grünbichler
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 2/2] pvecm: qdevice: adjust line lengths Aaron Lauterer
2024-05-21 7:12 ` [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt Aaron Lauterer
2 siblings, 1 reply; 7+ messages in thread
From: Aaron Lauterer @ 2024-05-15 10:32 UTC (permalink / raw)
To: pve-devel
because otherwise the SSH calls to other nodes in the cluster will fail
on newer clusters that only have the ssh known host keys located in the
pmxcfs.
By utilizing SSHInfo::ssh_info_to_ssh_opts we can add the needed options
to the SSH call to have the node name aliased correctly and pointing SSH
to the correct known hosts file.
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
---
src/PVE/CLI/pvecm.pm | 24 +++++++++++++++---------
1 file changed, 15 insertions(+), 9 deletions(-)
diff --git a/src/PVE/CLI/pvecm.pm b/src/PVE/CLI/pvecm.pm
index 0e8ca8f..5c285a9 100755
--- a/src/PVE/CLI/pvecm.pm
+++ b/src/PVE/CLI/pvecm.pm
@@ -18,6 +18,7 @@ use PVE::PTY;
use PVE::API2::ClusterConfig;
use PVE::Corosync;
use PVE::Cluster::Setup;
+use PVE::SSHInfo;
use base qw(PVE::CLIHandler);
@@ -173,9 +174,10 @@ __PACKAGE__->register_method ({
run_command([@$scp_cmd, "root\@\[$qnetd_addr\]:$ca_export_file", "/etc/pve/$ca_export_base"]);
$foreach_member->(sub {
my ($node, $ip) = @_;
+ my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
my $outsub = sub { print "\nnode '$node': " . shift };
run_command(
- [@$ssh_cmd, $ip, $qdevice_certutil, "-i", "-c", "/etc/pve/$ca_export_base"],
+ [@$ssh_cmd, @$ssh_options, $ip, $qdevice_certutil, "-i", "-c", "/etc/pve/$ca_export_base"],
noerr => 1, outfunc => \&$outsub
);
});
@@ -206,9 +208,10 @@ __PACKAGE__->register_method ({
run_command([@$scp_cmd, "$db_dir_node/$p12_file_base", "/etc/pve/"]);
$foreach_member->(sub {
my ($node, $ip) = @_;
+ my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
my $outsub = sub { print "\nnode '$node': " . shift };
run_command([
- @$ssh_cmd, $ip, "$qdevice_certutil", "-m", "-c",
+ @$ssh_cmd, @$ssh_options, $ip, "$qdevice_certutil", "-m", "-c",
"/etc/pve/$p12_file_base"], outfunc => \&$outsub
);
});
@@ -243,10 +246,11 @@ __PACKAGE__->register_method ({
$foreach_member->(sub {
my ($node, $ip) = @_;
+ my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
my $outsub = sub { print "\nnode '$node': " . shift };
print "\nINFO: start and enable corosync qdevice daemon on node '$node'...\n";
- run_command([@$ssh_cmd, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
- run_command([@$ssh_cmd, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
+ run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
+ run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
});
run_command(['corosync-cfgtool', '-R']); # do cluster wide config reload
@@ -291,8 +295,9 @@ __PACKAGE__->register_method ({
# cleanup qdev state (cert storage)
my $qdev_state_dir = "/etc/corosync/qdevice";
$foreach_member->(sub {
- my (undef, $ip) = @_;
- run_command([@$ssh_cmd, $ip, '--', 'rm', '-rf', $qdev_state_dir]);
+ my ($node, $ip) = @_;
+ my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
+ run_command([@$ssh_cmd, @$ssh_options, $ip, '--', 'rm', '-rf', $qdev_state_dir]);
});
};
@@ -300,9 +305,10 @@ __PACKAGE__->register_method ({
die $@ if $@;
$foreach_member->(sub {
- my (undef, $ip) = @_;
- run_command([@$ssh_cmd, $ip, 'systemctl', 'stop', 'corosync-qdevice']);
- run_command([@$ssh_cmd, $ip, 'systemctl', 'disable', 'corosync-qdevice']);
+ my ($node, $ip) = @_;
+ my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
+ run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'stop', 'corosync-qdevice']);
+ run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'disable', 'corosync-qdevice']);
});
run_command(['corosync-cfgtool', '-R']);
--
2.39.2
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [PATCH cluster 2/2] pvecm: qdevice: adjust line lengths
2024-05-15 10:32 [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt Aaron Lauterer
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options Aaron Lauterer
@ 2024-05-15 10:32 ` Aaron Lauterer
2024-05-16 9:45 ` Fabian Grünbichler
2024-05-21 7:12 ` [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt Aaron Lauterer
2 siblings, 1 reply; 7+ messages in thread
From: Aaron Lauterer @ 2024-05-15 10:32 UTC (permalink / raw)
To: pve-devel
The first instance had the line break mid array. It now is a bit over
the limit, but follows the style guide closely: putting each argument to
the function in a newline.
Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
---
src/PVE/CLI/pvecm.pm | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/src/PVE/CLI/pvecm.pm b/src/PVE/CLI/pvecm.pm
index 5c285a9..53e9cac 100755
--- a/src/PVE/CLI/pvecm.pm
+++ b/src/PVE/CLI/pvecm.pm
@@ -210,10 +210,10 @@ __PACKAGE__->register_method ({
my ($node, $ip) = @_;
my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
my $outsub = sub { print "\nnode '$node': " . shift };
- run_command([
- @$ssh_cmd, @$ssh_options, $ip, "$qdevice_certutil", "-m", "-c",
- "/etc/pve/$p12_file_base"], outfunc => \&$outsub
- );
+ run_command(
+ [@$ssh_cmd, @$ssh_options, $ip, "$qdevice_certutil", "-m", "-c", "/etc/pve/$p12_file_base"],
+ outfunc => \&$outsub
+ );
});
unlink "/etc/pve/$p12_file_base";
@@ -249,8 +249,14 @@ __PACKAGE__->register_method ({
my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
my $outsub = sub { print "\nnode '$node': " . shift };
print "\nINFO: start and enable corosync qdevice daemon on node '$node'...\n";
- run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
- run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
+ run_command(
+ [@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'start', 'corosync-qdevice'],
+ outfunc => \&$outsub
+ );
+ run_command(
+ [@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'enable', 'corosync-qdevice'],
+ outfunc => \&$outsub
+ );
});
run_command(['corosync-cfgtool', '-R']); # do cluster wide config reload
--
2.39.2
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH cluster 2/2] pvecm: qdevice: adjust line lengths
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 2/2] pvecm: qdevice: adjust line lengths Aaron Lauterer
@ 2024-05-16 9:45 ` Fabian Grünbichler
0 siblings, 0 replies; 7+ messages in thread
From: Fabian Grünbichler @ 2024-05-16 9:45 UTC (permalink / raw)
To: Proxmox VE development discussion
On May 15, 2024 12:32 pm, Aaron Lauterer wrote:
> The first instance had the line break mid array. It now is a bit over
> the limit, but follows the style guide closely: putting each argument to
> the function in a newline.
>
> Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
> ---
> src/PVE/CLI/pvecm.pm | 18 ++++++++++++------
> 1 file changed, 12 insertions(+), 6 deletions(-)
>
> diff --git a/src/PVE/CLI/pvecm.pm b/src/PVE/CLI/pvecm.pm
> index 5c285a9..53e9cac 100755
> --- a/src/PVE/CLI/pvecm.pm
> +++ b/src/PVE/CLI/pvecm.pm
> @@ -210,10 +210,10 @@ __PACKAGE__->register_method ({
> my ($node, $ip) = @_;
> my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
> my $outsub = sub { print "\nnode '$node': " . shift };
> - run_command([
> - @$ssh_cmd, @$ssh_options, $ip, "$qdevice_certutil", "-m", "-c",
> - "/etc/pve/$p12_file_base"], outfunc => \&$outsub
> - );
> + run_command(
> + [@$ssh_cmd, @$ssh_options, $ip, "$qdevice_certutil", "-m", "-c", "/etc/pve/$p12_file_base"],
> + outfunc => \&$outsub
this would then be even shorter if the options can be dropped
altogether. and while we are at it:
outfunc => $outsub
no need for symbol salad here :)
I don't mind the arg-per-line even if it would be below the limit then,
but as an alternative, you can always construct the full command first
to make the run_command line shorter.
e.g.:
my $cluster_ssh_cmd = PVE::SSHInfo::ssh_info_to_command({ ip => $ip, name => $node });
my $cmd = [@$cluster_ssh_cmd, '--', $qdevice_certutil, '-m', '-c', "/etc/pve/$p12_file_base"];
run_command($cmd, outfunc => $outsub);
but that is mainly a matter of taste I'd say.
> + );
> });
> unlink "/etc/pve/$p12_file_base";
>
> @@ -249,8 +249,14 @@ __PACKAGE__->register_method ({
> my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
> my $outsub = sub { print "\nnode '$node': " . shift };
> print "\nINFO: start and enable corosync qdevice daemon on node '$node'...\n";
> - run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
> - run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
> + run_command(
> + [@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'start', 'corosync-qdevice'],
> + outfunc => \&$outsub
> + );
> + run_command(
> + [@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'enable', 'corosync-qdevice'],
> + outfunc => \&$outsub
> + );
same as above applies here as well
> });
>
> run_command(['corosync-cfgtool', '-R']); # do cluster wide config reload
> --
> 2.39.2
>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options Aaron Lauterer
@ 2024-05-16 10:17 ` Fabian Grünbichler
2024-05-16 10:38 ` Aaron Lauterer
0 siblings, 1 reply; 7+ messages in thread
From: Fabian Grünbichler @ 2024-05-16 10:17 UTC (permalink / raw)
To: Proxmox VE development discussion
On May 15, 2024 12:32 pm, Aaron Lauterer wrote:
> because otherwise the SSH calls to other nodes in the cluster will fail
> on newer clusters that only have the ssh known host keys located in the
> pmxcfs.
>
> By utilizing SSHInfo::ssh_info_to_ssh_opts we can add the needed options
> to the SSH call to have the node name aliased correctly and pointing SSH
> to the correct known hosts file.
couldn't this completely be switched over to use ssh_info_to_command ?
then we'd also benefit from other existing and future additions there
ssh_info_to_ssh_opts is basically the escape hatch for cases where that
does not work, like scp ;)
> Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
> ---
> src/PVE/CLI/pvecm.pm | 24 +++++++++++++++---------
> 1 file changed, 15 insertions(+), 9 deletions(-)
>
> diff --git a/src/PVE/CLI/pvecm.pm b/src/PVE/CLI/pvecm.pm
> index 0e8ca8f..5c285a9 100755
> --- a/src/PVE/CLI/pvecm.pm
> +++ b/src/PVE/CLI/pvecm.pm
> @@ -18,6 +18,7 @@ use PVE::PTY;
> use PVE::API2::ClusterConfig;
> use PVE::Corosync;
> use PVE::Cluster::Setup;
> +use PVE::SSHInfo;
>
> use base qw(PVE::CLIHandler);
>
> @@ -173,9 +174,10 @@ __PACKAGE__->register_method ({
> run_command([@$scp_cmd, "root\@\[$qnetd_addr\]:$ca_export_file", "/etc/pve/$ca_export_base"]);
> $foreach_member->(sub {
> my ($node, $ip) = @_;
> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
> my $outsub = sub { print "\nnode '$node': " . shift };
> run_command(
> - [@$ssh_cmd, $ip, $qdevice_certutil, "-i", "-c", "/etc/pve/$ca_export_base"],
> + [@$ssh_cmd, @$ssh_options, $ip, $qdevice_certutil, "-i", "-c", "/etc/pve/$ca_export_base"],
> noerr => 1, outfunc => \&$outsub
> );
> });
> @@ -206,9 +208,10 @@ __PACKAGE__->register_method ({
> run_command([@$scp_cmd, "$db_dir_node/$p12_file_base", "/etc/pve/"]);
> $foreach_member->(sub {
> my ($node, $ip) = @_;
> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
> my $outsub = sub { print "\nnode '$node': " . shift };
> run_command([
> - @$ssh_cmd, $ip, "$qdevice_certutil", "-m", "-c",
> + @$ssh_cmd, @$ssh_options, $ip, "$qdevice_certutil", "-m", "-c",
> "/etc/pve/$p12_file_base"], outfunc => \&$outsub
> );
> });
> @@ -243,10 +246,11 @@ __PACKAGE__->register_method ({
>
> $foreach_member->(sub {
> my ($node, $ip) = @_;
> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
> my $outsub = sub { print "\nnode '$node': " . shift };
> print "\nINFO: start and enable corosync qdevice daemon on node '$node'...\n";
> - run_command([@$ssh_cmd, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
> - run_command([@$ssh_cmd, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
> });
>
> run_command(['corosync-cfgtool', '-R']); # do cluster wide config reload
> @@ -291,8 +295,9 @@ __PACKAGE__->register_method ({
> # cleanup qdev state (cert storage)
> my $qdev_state_dir = "/etc/corosync/qdevice";
> $foreach_member->(sub {
> - my (undef, $ip) = @_;
> - run_command([@$ssh_cmd, $ip, '--', 'rm', '-rf', $qdev_state_dir]);
> + my ($node, $ip) = @_;
> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
> + run_command([@$ssh_cmd, @$ssh_options, $ip, '--', 'rm', '-rf', $qdev_state_dir]);
> });
> };
>
> @@ -300,9 +305,10 @@ __PACKAGE__->register_method ({
> die $@ if $@;
>
> $foreach_member->(sub {
> - my (undef, $ip) = @_;
> - run_command([@$ssh_cmd, $ip, 'systemctl', 'stop', 'corosync-qdevice']);
> - run_command([@$ssh_cmd, $ip, 'systemctl', 'disable', 'corosync-qdevice']);
> + my ($node, $ip) = @_;
> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'stop', 'corosync-qdevice']);
> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'disable', 'corosync-qdevice']);
> });
>
> run_command(['corosync-cfgtool', '-R']);
> --
> 2.39.2
>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options
2024-05-16 10:17 ` Fabian Grünbichler
@ 2024-05-16 10:38 ` Aaron Lauterer
0 siblings, 0 replies; 7+ messages in thread
From: Aaron Lauterer @ 2024-05-16 10:38 UTC (permalink / raw)
To: Proxmox VE development discussion, Fabian Grünbichler
I'll give it a try and will send a v2 :)
On 2024-05-16 12:17, Fabian Grünbichler wrote:
> On May 15, 2024 12:32 pm, Aaron Lauterer wrote:
>> because otherwise the SSH calls to other nodes in the cluster will fail
>> on newer clusters that only have the ssh known host keys located in the
>> pmxcfs.
>>
>> By utilizing SSHInfo::ssh_info_to_ssh_opts we can add the needed options
>> to the SSH call to have the node name aliased correctly and pointing SSH
>> to the correct known hosts file.
>
> couldn't this completely be switched over to use ssh_info_to_command ?
> then we'd also benefit from other existing and future additions there
>
> ssh_info_to_ssh_opts is basically the escape hatch for cases where that
> does not work, like scp ;)
>
>> Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
>> ---
>> src/PVE/CLI/pvecm.pm | 24 +++++++++++++++---------
>> 1 file changed, 15 insertions(+), 9 deletions(-)
>>
>> diff --git a/src/PVE/CLI/pvecm.pm b/src/PVE/CLI/pvecm.pm
>> index 0e8ca8f..5c285a9 100755
>> --- a/src/PVE/CLI/pvecm.pm
>> +++ b/src/PVE/CLI/pvecm.pm
>> @@ -18,6 +18,7 @@ use PVE::PTY;
>> use PVE::API2::ClusterConfig;
>> use PVE::Corosync;
>> use PVE::Cluster::Setup;
>> +use PVE::SSHInfo;
>>
>> use base qw(PVE::CLIHandler);
>>
>> @@ -173,9 +174,10 @@ __PACKAGE__->register_method ({
>> run_command([@$scp_cmd, "root\@\[$qnetd_addr\]:$ca_export_file", "/etc/pve/$ca_export_base"]);
>> $foreach_member->(sub {
>> my ($node, $ip) = @_;
>> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
>> my $outsub = sub { print "\nnode '$node': " . shift };
>> run_command(
>> - [@$ssh_cmd, $ip, $qdevice_certutil, "-i", "-c", "/etc/pve/$ca_export_base"],
>> + [@$ssh_cmd, @$ssh_options, $ip, $qdevice_certutil, "-i", "-c", "/etc/pve/$ca_export_base"],
>> noerr => 1, outfunc => \&$outsub
>> );
>> });
>> @@ -206,9 +208,10 @@ __PACKAGE__->register_method ({
>> run_command([@$scp_cmd, "$db_dir_node/$p12_file_base", "/etc/pve/"]);
>> $foreach_member->(sub {
>> my ($node, $ip) = @_;
>> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
>> my $outsub = sub { print "\nnode '$node': " . shift };
>> run_command([
>> - @$ssh_cmd, $ip, "$qdevice_certutil", "-m", "-c",
>> + @$ssh_cmd, @$ssh_options, $ip, "$qdevice_certutil", "-m", "-c",
>> "/etc/pve/$p12_file_base"], outfunc => \&$outsub
>> );
>> });
>> @@ -243,10 +246,11 @@ __PACKAGE__->register_method ({
>>
>> $foreach_member->(sub {
>> my ($node, $ip) = @_;
>> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
>> my $outsub = sub { print "\nnode '$node': " . shift };
>> print "\nINFO: start and enable corosync qdevice daemon on node '$node'...\n";
>> - run_command([@$ssh_cmd, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
>> - run_command([@$ssh_cmd, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
>> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'start', 'corosync-qdevice'], outfunc => \&$outsub);
>> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'enable', 'corosync-qdevice'], outfunc => \&$outsub);
>> });
>>
>> run_command(['corosync-cfgtool', '-R']); # do cluster wide config reload
>> @@ -291,8 +295,9 @@ __PACKAGE__->register_method ({
>> # cleanup qdev state (cert storage)
>> my $qdev_state_dir = "/etc/corosync/qdevice";
>> $foreach_member->(sub {
>> - my (undef, $ip) = @_;
>> - run_command([@$ssh_cmd, $ip, '--', 'rm', '-rf', $qdev_state_dir]);
>> + my ($node, $ip) = @_;
>> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
>> + run_command([@$ssh_cmd, @$ssh_options, $ip, '--', 'rm', '-rf', $qdev_state_dir]);
>> });
>> };
>>
>> @@ -300,9 +305,10 @@ __PACKAGE__->register_method ({
>> die $@ if $@;
>>
>> $foreach_member->(sub {
>> - my (undef, $ip) = @_;
>> - run_command([@$ssh_cmd, $ip, 'systemctl', 'stop', 'corosync-qdevice']);
>> - run_command([@$ssh_cmd, $ip, 'systemctl', 'disable', 'corosync-qdevice']);
>> + my ($node, $ip) = @_;
>> + my $ssh_options = PVE::SSHInfo::ssh_info_to_ssh_opts ({ ip => $ip, name => $node });
>> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'stop', 'corosync-qdevice']);
>> + run_command([@$ssh_cmd, @$ssh_options, $ip, 'systemctl', 'disable', 'corosync-qdevice']);
>> });
>>
>> run_command(['corosync-cfgtool', '-R']);
>> --
>> 2.39.2
>>
>>
>>
>> _______________________________________________
>> pve-devel mailing list
>> pve-devel@lists.proxmox.com
>> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>>
>>
>>
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel@lists.proxmox.com
> https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt
2024-05-15 10:32 [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt Aaron Lauterer
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options Aaron Lauterer
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 2/2] pvecm: qdevice: adjust line lengths Aaron Lauterer
@ 2024-05-21 7:12 ` Aaron Lauterer
2 siblings, 0 replies; 7+ messages in thread
From: Aaron Lauterer @ 2024-05-21 7:12 UTC (permalink / raw)
To: pve-devel
v2 is available
https://lists.proxmox.com/pipermail/pve-devel/2024-May/063878.html
On 2024-05-15 12:32, Aaron Lauterer wrote:
> on clusters where the ssh known hosts info is only stored in the pmxcfs,
> it broke the mgmt of the qdevice. By adding the necessary ssh options on
> each intra cluster ssh call, we can fix this.
>
> The second patch is optional and adjusts the touched code to fit better
> into the max line lenghts.
> I put it into a separate patch as I wasn't 100% sure how to format it,
> especially the first instance in that patch.
>
>
> Aaron Lauterer (2):
> fix #5461: pvecm: ssh: adapt intra cluster ssh options
> pvecm: qdevice: adjust line lengths
>
> src/PVE/CLI/pvecm.pm | 36 ++++++++++++++++++++++++------------
> 1 file changed, 24 insertions(+), 12 deletions(-)
>
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-05-21 7:12 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-05-15 10:32 [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt Aaron Lauterer
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 1/2] fix #5461: pvecm: ssh: adapt intra cluster ssh options Aaron Lauterer
2024-05-16 10:17 ` Fabian Grünbichler
2024-05-16 10:38 ` Aaron Lauterer
2024-05-15 10:32 ` [pve-devel] [PATCH cluster 2/2] pvecm: qdevice: adjust line lengths Aaron Lauterer
2024-05-16 9:45 ` Fabian Grünbichler
2024-05-21 7:12 ` [pve-devel] [PATCH cluster 0/2] fix #5461: qdevice cluster mgmt Aaron Lauterer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox