* [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade
@ 2021-09-13 12:04 Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [RFC manager 1/1] api: nodes: set environment variable for shells started via the API Fabian Ebner
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Fabian Ebner @ 2021-09-13 12:04 UTC (permalink / raw)
To: pve-devel
Quoting from the upgrade notes:
> Perform the actions via console or ssh; preferably via console to avoid
> interrupted ssh connections. Do not carry out the upgrade when connected
> via the virtual console offered by the GUI; as this will get interrupted
> during the upgrade.
But some users still seem to miss this, so let's be more direct.
One part is proxmox-ve patches #1 and #2, just mentioning it up front.
The other two patches (sent as RFC, as I'm not sure this is the best
approach), would make it a hard error when a console started via
API/GUI is detected upon attempting a major upgrade.
All patches are also intended for stable-6. Note that proxmox-ve does
not currently have a stable-6 branch, I used
286285a9a441ad5b1a3c1869373bfbaadbb70bb4 as a base when testing.
proxmox-ve depends on pve-manager for the new behavior to take effect,
but it's not a hard dependency.
pve-manager:
Fabian Ebner (1):
api: nodes: set environment variable for shells started via the API
PVE/API2/Nodes.pm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
proxmox-ve:
Fabian Ebner (3):
apt hook: avoid long line and fix typo
apt hook: mention that console/ssh should be used for major upgrade
apt hook: disallow major upgrade via virtual console from API/UI
debian/apthook/pve-apt-hook | 15 +++++++++++----
1 file changed, 11 insertions(+), 4 deletions(-)
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [RFC manager 1/1] api: nodes: set environment variable for shells started via the API
2021-09-13 12:04 [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
@ 2021-09-13 12:04 ` Fabian Ebner
2021-09-13 12:26 ` Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [PATCH proxmox-ve 1/3] apt hook: avoid long line and fix typo Fabian Ebner
` (3 subsequent siblings)
4 siblings, 1 reply; 7+ messages in thread
From: Fabian Ebner @ 2021-09-13 12:04 UTC (permalink / raw)
To: pve-devel
so that proxmox-ve's apt hook script can detect this.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
PVE/API2/Nodes.pm | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
index e58d9c10..c57ad995 100644
--- a/PVE/API2/Nodes.pm
+++ b/PVE/API2/Nodes.pm
@@ -843,13 +843,13 @@ my $sslcert;
my $shell_cmd_map = {
'login' => {
- cmd => [ '/bin/login', '-f', 'root' ],
+ cmd => [ '/bin/login', '-f', 'root', 'PVE_API_SHELL=1' ],
},
'upgrade' => {
- cmd => [ '/usr/bin/pveupgrade', '--shell' ],
+ cmd => [ '/usr/bin/env', 'PVE_API_SHELL=1', '/usr/bin/pveupgrade', '--shell' ],
},
'ceph_install' => {
- cmd => [ '/usr/bin/pveceph', 'install' ],
+ cmd => [ '/usr/bin/env', 'PVE_API_SHELL=1', '/usr/bin/pveceph', 'install' ],
allow_args => 1,
},
};
@@ -866,11 +866,11 @@ sub get_shell_command {
push @$cmd, split("\0", $args);
}
} else {
- $cmd = [ '/bin/login', '-f', 'root' ];
+ $cmd = [ '/bin/login', '-f', 'root', 'PVE_API_SHELL=1' ];
}
} else {
# non-root must always login for now, we do not have a superuser role!
- $cmd = [ '/bin/login' ];
+ $cmd = [ '/bin/login', 'PVE_API_SHELL=1' ];
}
return $cmd;
}
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [PATCH proxmox-ve 1/3] apt hook: avoid long line and fix typo
2021-09-13 12:04 [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [RFC manager 1/1] api: nodes: set environment variable for shells started via the API Fabian Ebner
@ 2021-09-13 12:04 ` Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [PATCH proxmox-ve 2/3] apt hook: mention that console/ssh should be used for major upgrade Fabian Ebner
` (2 subsequent siblings)
4 siblings, 0 replies; 7+ messages in thread
From: Fabian Ebner @ 2021-09-13 12:04 UTC (permalink / raw)
To: pve-devel
by making 'upgrade' lowercase.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
debian/apthook/pve-apt-hook | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/debian/apthook/pve-apt-hook b/debian/apthook/pve-apt-hook
index 1f77a1a..d79b6c0 100755
--- a/debian/apthook/pve-apt-hook
+++ b/debian/apthook/pve-apt-hook
@@ -74,7 +74,8 @@ while (my $line = <$fh>) {
}
} elsif ($action eq '**CONFIGURE**' && $dir eq '<' && $old =~ /^6\./ && $new =~ /^7\./) {
$log->("!! ATTENTION !!\n");
- $log->("You are attempting to upgrade from proxmox-ve '$old' to proxmox-ve '$new'. Please make sure to read the Upgrade notes at\n");
+ $log->("You are attempting to upgrade from proxmox-ve '$old' to proxmox-ve '$new'.\n");
+ $log->("Please make sure to read the upgrade notes at\n");
$log->("\thttps://pve.proxmox.com/wiki/Upgrade_from_6.x_to_7.0\n");
$log->("before proceeding with this operation.\n");
$log->("\n");
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [PATCH proxmox-ve 2/3] apt hook: mention that console/ssh should be used for major upgrade
2021-09-13 12:04 [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [RFC manager 1/1] api: nodes: set environment variable for shells started via the API Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [PATCH proxmox-ve 1/3] apt hook: avoid long line and fix typo Fabian Ebner
@ 2021-09-13 12:04 ` Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [RFC proxmox-ve 3/3] apt hook: disallow major upgrade via virtual console from API/UI Fabian Ebner
2021-10-29 9:32 ` [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
4 siblings, 0 replies; 7+ messages in thread
From: Fabian Ebner @ 2021-09-13 12:04 UTC (permalink / raw)
To: pve-devel
There were a few reports of people trying to upgrade via the virtual
console running into problems, because it would be interrupted. The
latest one is [0], although I'm speculating that it might not have
been the cause of all the reported problems in this case.
[0]: https://forum.proxmox.com/threads/help-please-problem-upgrading-to-pve7.95941/
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
debian/apthook/pve-apt-hook | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/debian/apthook/pve-apt-hook b/debian/apthook/pve-apt-hook
index d79b6c0..72a38ca 100755
--- a/debian/apthook/pve-apt-hook
+++ b/debian/apthook/pve-apt-hook
@@ -77,7 +77,8 @@ while (my $line = <$fh>) {
$log->("You are attempting to upgrade from proxmox-ve '$old' to proxmox-ve '$new'.\n");
$log->("Please make sure to read the upgrade notes at\n");
$log->("\thttps://pve.proxmox.com/wiki/Upgrade_from_6.x_to_7.0\n");
- $log->("before proceeding with this operation.\n");
+ $log->("and that you are are connected directly via console or ssh (not the virtual\n");
+ $log->("console offered by the GUI!) before proceeding with this operation.\n");
$log->("\n");
$log->("Press enter to continue, or C^c to abort.\n");
$cleanup->(0, 1);
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [pve-devel] [RFC proxmox-ve 3/3] apt hook: disallow major upgrade via virtual console from API/UI
2021-09-13 12:04 [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
` (2 preceding siblings ...)
2021-09-13 12:04 ` [pve-devel] [PATCH proxmox-ve 2/3] apt hook: mention that console/ssh should be used for major upgrade Fabian Ebner
@ 2021-09-13 12:04 ` Fabian Ebner
2021-10-29 9:32 ` [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
4 siblings, 0 replies; 7+ messages in thread
From: Fabian Ebner @ 2021-09-13 12:04 UTC (permalink / raw)
To: pve-devel
and adapt the output to avoid too much redundancy.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
debian/apthook/pve-apt-hook | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/debian/apthook/pve-apt-hook b/debian/apthook/pve-apt-hook
index 72a38ca..0eed6eb 100755
--- a/debian/apthook/pve-apt-hook
+++ b/debian/apthook/pve-apt-hook
@@ -77,11 +77,16 @@ while (my $line = <$fh>) {
$log->("You are attempting to upgrade from proxmox-ve '$old' to proxmox-ve '$new'.\n");
$log->("Please make sure to read the upgrade notes at\n");
$log->("\thttps://pve.proxmox.com/wiki/Upgrade_from_6.x_to_7.0\n");
- $log->("and that you are are connected directly via console or ssh (not the virtual\n");
- $log->("console offered by the GUI!) before proceeding with this operation.\n");
+ $log->("and that you are are connected directly via console or ssh before proceeding\n");
+ $log->("with this operation.\n");
$log->("\n");
- $log->("Press enter to continue, or C^c to abort.\n");
- $cleanup->(0, 1);
+ if ($ENV{PVE_API_SHELL}) {
+ $log->("Error: Refusing to carry out the major upgrade via GUI/API virtual console.\n");
+ $cleanup->(1);
+ } else {
+ $log->("Press enter to continue, or C^c to abort.\n");
+ $cleanup->(0, 1);
+ }
}
}
}
--
2.20.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [RFC manager 1/1] api: nodes: set environment variable for shells started via the API
2021-09-13 12:04 ` [pve-devel] [RFC manager 1/1] api: nodes: set environment variable for shells started via the API Fabian Ebner
@ 2021-09-13 12:26 ` Fabian Ebner
0 siblings, 0 replies; 7+ messages in thread
From: Fabian Ebner @ 2021-09-13 12:26 UTC (permalink / raw)
To: pve-devel
Am 13.09.21 um 14:04 schrieb Fabian Ebner:
> so that proxmox-ve's apt hook script can detect this.
>
> Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
> ---
> PVE/API2/Nodes.pm | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/PVE/API2/Nodes.pm b/PVE/API2/Nodes.pm
> index e58d9c10..c57ad995 100644
> --- a/PVE/API2/Nodes.pm
> +++ b/PVE/API2/Nodes.pm
> @@ -843,13 +843,13 @@ my $sslcert;
>
> my $shell_cmd_map = {
> 'login' => {
> - cmd => [ '/bin/login', '-f', 'root' ],
> + cmd => [ '/bin/login', '-f', 'root', 'PVE_API_SHELL=1' ],
> },
> 'upgrade' => {
> - cmd => [ '/usr/bin/pveupgrade', '--shell' ],
> + cmd => [ '/usr/bin/env', 'PVE_API_SHELL=1', '/usr/bin/pveupgrade', '--shell' ],
> },
> 'ceph_install' => {
> - cmd => [ '/usr/bin/pveceph', 'install' ],
> + cmd => [ '/usr/bin/env', 'PVE_API_SHELL=1', '/usr/bin/pveceph', 'install' ],
> allow_args => 1,
> },
> };
> @@ -866,11 +866,11 @@ sub get_shell_command {
> push @$cmd, split("\0", $args);
> }
> } else {
> - $cmd = [ '/bin/login', '-f', 'root' ];
> + $cmd = [ '/bin/login', '-f', 'root', 'PVE_API_SHELL=1' ];
> }
> } else {
> # non-root must always login for now, we do not have a superuser role!
> - $cmd = [ '/bin/login' ];
> + $cmd = [ '/bin/login', 'PVE_API_SHELL=1' ];
Sorry, I think the PVE_API_SHELL=1 gets interpreted as the username in
this case. I'll fix that in v2 if we even go with this approach.
> }
> return $cmd;
> }
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade
2021-09-13 12:04 [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
` (3 preceding siblings ...)
2021-09-13 12:04 ` [pve-devel] [RFC proxmox-ve 3/3] apt hook: disallow major upgrade via virtual console from API/UI Fabian Ebner
@ 2021-10-29 9:32 ` Fabian Ebner
4 siblings, 0 replies; 7+ messages in thread
From: Fabian Ebner @ 2021-10-29 9:32 UTC (permalink / raw)
To: pve-devel
Could I get some feedback for this?
Am 13.09.21 um 14:04 schrieb Fabian Ebner:
> Quoting from the upgrade notes:
>
>> Perform the actions via console or ssh; preferably via console to avoid
>> interrupted ssh connections. Do not carry out the upgrade when connected
>> via the virtual console offered by the GUI; as this will get interrupted
>> during the upgrade.
>
> But some users still seem to miss this, so let's be more direct.
>
> One part is proxmox-ve patches #1 and #2, just mentioning it up front.
>
> The other two patches (sent as RFC, as I'm not sure this is the best
> approach), would make it a hard error when a console started via
> API/GUI is detected upon attempting a major upgrade.
>
>
> All patches are also intended for stable-6. Note that proxmox-ve does
> not currently have a stable-6 branch, I used
> 286285a9a441ad5b1a3c1869373bfbaadbb70bb4 as a base when testing.
>
>
> proxmox-ve depends on pve-manager for the new behavior to take effect,
> but it's not a hard dependency.
>
>
> pve-manager:
>
> Fabian Ebner (1):
> api: nodes: set environment variable for shells started via the API
>
> PVE/API2/Nodes.pm | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
>
> proxmox-ve:
>
> Fabian Ebner (3):
> apt hook: avoid long line and fix typo
> apt hook: mention that console/ssh should be used for major upgrade
> apt hook: disallow major upgrade via virtual console from API/UI
>
> debian/apthook/pve-apt-hook | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2021-10-29 9:33 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-13 12:04 [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [RFC manager 1/1] api: nodes: set environment variable for shells started via the API Fabian Ebner
2021-09-13 12:26 ` Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [PATCH proxmox-ve 1/3] apt hook: avoid long line and fix typo Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [PATCH proxmox-ve 2/3] apt hook: mention that console/ssh should be used for major upgrade Fabian Ebner
2021-09-13 12:04 ` [pve-devel] [RFC proxmox-ve 3/3] apt hook: disallow major upgrade via virtual console from API/UI Fabian Ebner
2021-10-29 9:32 ` [pve-devel] [PATCH-SERIES manager/proxmox-ve] warn against/prevent using virtual console for major upgrade Fabian Ebner
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox