@@ -425,11 +425,23 @@ def get_final_ip() -> str | None:
425425def configure_cockpit (enabled : bool ):
426426 if enabled :
427427 step (T ["cockpit_step" ])
428- subprocess .run (["systemctl" , "enable" , "--now" , "cockpit.socket" ], check = False )
429- done (T ["cockpit_done" ])
430- else :
431- subprocess .run (["systemctl" , "disable" , "--now" , "cockpit.socket" ],
428+ # Le socket et le service sont masqués au build — il faut d'abord
429+ # lever le masque avant de pouvoir les activer.
430+ subprocess .run (["systemctl" , "unmask" , "cockpit.socket" , "cockpit.service" ],
432431 check = False , capture_output = True )
432+ r = subprocess .run (["systemctl" , "enable" , "--now" , "cockpit.socket" ],
433+ capture_output = True , text = True )
434+ if r .returncode != 0 :
435+ err (f"Cockpit : activation échouée — { (r .stderr or r .stdout ).strip ()} " )
436+ else :
437+ done (T ["cockpit_done" ])
438+ else :
439+ r1 = subprocess .run (["systemctl" , "disable" , "--now" , "cockpit.socket" ],
440+ capture_output = True , text = True )
441+ r2 = subprocess .run (["systemctl" , "mask" , "cockpit.socket" , "cockpit.service" ],
442+ capture_output = True , text = True )
443+ if r1 .returncode != 0 or r2 .returncode != 0 :
444+ err ("Cockpit : désactivation incomplète — vérifier manuellement" )
433445
434446
435447# ---------------------------------------------------------------------------
0 commit comments