all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal