PowerFlex 升級失敗,並顯示: ansible.legacy.setup /usr/bin/sudo:權限遭拒

Summary: 將 PowerFlex 軟體從 4.5.1 升級至 4.5.2 其中一個節點升級失敗,並顯示錯誤 升級 PowerFlex (XXX) - OS=PowerFlex 失敗,訊息:ob-f0f65576-c290-4ae1-a398-cde0399284db-0 ndc-xxxxxxxx 無法在執行工作「收集事實」時設定 ndc-xxxxxxxx:下列模組無法執行:ansible.legacy.setup ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

對異常日誌的分析提供了錯誤,並指出了根本原因的相應 .yaml 和 .out 檔: 

 

部署記錄:

DEBUG [2024-05-08T10:59:38.422838] 27544: service_deployment.rb:1874:in `process_ansible_errors': Exception while running ansible playbook RuntimeError: Command

      failed: env VAULT=****** ANSIBLE_STDOUT_CALLBACK=json ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_SSH_ARGS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no

      -o ServerAliveInterval=30" ANSIBLE_PERSISTENT_CONNECT_TIMEOUT=120 ANSIBLE_PERSISTENT_COMMAND_TIMEOUT=120 timeout 1800 sudo -E /usr/local/bin/ansible-playbook -i

      /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/plays/ndc-esdsosp12-inv.yaml /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/plays/ndc-esdsosp12.yaml

      --vault-password-file /opt/asm-deployer/scripts/run_vault_script.py; output in /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/ndc-esdsosp12.out

ERROR [2024-05-08T10:59:38.433623] 27544: service_deployment.rb:1887:in `process_ansible_errors': Error Message: The following modules failed to execute:

      ansible.legacy.setup

DEBUG [2024-05-08T10:59:38.434102] 27544: service_deployment.rb:1897:in `process_ansible_errors': errpr_desc = The following modules failed to execute: ansible.legacy.setup;

      additional_error_check = false

例外記錄:

<RuntimeError: Failed to transfer ca-cert on 10.x.x.71: RuntimeError: Error running ansible playbook: : RuntimeError :: Command failed: env VAULT=******                        
                                  ANSIBLE_STDOUT_CALLBACK=json ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_SSH_ARGS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -o ServerAliveInterval=30"
                        
                                  ANSIBLE_PERSISTENT_CONNECT_TIMEOUT=120 ANSIBLE_PERSISTENT_COMMAND_TIMEOUT=120 timeout 1800 sudo -E /usr/local/bin/ansible-playbook -i /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/plays/ndc-esdsosp12-inv___5.yaml
                        
                                  /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/plays/ndc-esdsosp12___5.yaml --vault-password-file /opt/asm-deployer/scripts/run_vault_script.py;
                        
                                  output in /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/ndc-esdsosp12___5.out: Error running ansible playbook: : RuntimeError :: Command
                        
                                  failed: env VAULT=****** ANSIBLE_STDOUT_CALLBACK=json ANSIBLE_HOST_KEY_CHECKING=False ANSIBLE_SSH_ARGS="-o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no
                        
                                  -o ServerAliveInterval=30" ANSIBLE_PERSISTENT_CONNECT_TIMEOUT=120 ANSIBLE_PERSISTENT_COMMAND_TIMEOUT=120 timeout 1800 sudo -E /usr/local/bin/ansible-playbook -i
                        
                                  /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/plays/ndc-esdsosp12-inv___5.yaml /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/plays/ndc-esdsosp12___5.yaml
                        
                                  --vault-password-file /opt/asm-deployer/scripts/run_vault_script.py; output in /opt/Dell/ASM/deployments/Job-d77631dd-0808-43ee-a152-dd4c4552d384-0/ndc-esdsosp12___5.out>

.yaml 記錄:

all:
  hosts:
    10.x.x.71:
      server: 10.x.x.71
      ansible_ssh_user: pflex
      ansible_ssh_pass:  !vault |
                  $ANSIBLE_VAULT;1.1;AES256
                  33396339316633666565326637633562616561363339646436393530326666616332623233333862
                  3362356365656433386535666139306337386638626137340a383532623431613734613133366638
                  39353665653639343661346438343636633937306331333164656666663662373338396536313530
                  6137636663656637660a363036333663613566373237316637623635623265303434313231653735
                  3064
      ansible_ssh_private_key_file: "/tmp/20240509-5076-oix54r"
      ansible_become_password:  !vault |
                  $ANSIBLE_VAULT;1.1;AES256
                  33396339316633666565326637633562616561363339646436393530326666616332623233333862
                  3362356365656433386535666139306337386638626137340a383532623431613734613133366638
                  39353665653639343661346438343636633937306331333164656666663662373338396536313530
                  6137636663656637660a363036333663613566373237316637623635623265303434313231653735
                  3064
      source: "/opt/asm-deployer/tls/ca.crt"
      destination: "/etc/pki/trust/anchors"
      cert_file: ca.crt
      is_non_root_user: true

.out 記錄:

"hosts": {
                        "10.x.x.71": {
                            "_ansible_no_log": false,
                            "_ansible_verbose_override": true,
                            "action": "gather_facts",
                            "ansible_facts": {},
                            "changed": false,
                            "failed": true,
                            "failed_modules": {
                                "ansible.legacy.setup": {
                                    "ansible_facts": {
                                        "discovered_interpreter_python": "/usr/bin/python3.6"
                                    },
                                    "failed": true,
                                    "module_stderr": "Warning: Permanently added '10.x.x.71' (ECDSA) to the list of known hosts.\r\nConnection to 10.x.x.71 closed.\r\n",
                                    "module_stdout": "/bin/sh: /usr/bin/sudo: Permission denied\r\n",
                                    "msg": "MODULE FAILURE\nSee stdout/stderr for the exact error",
                                    "rc": 126,      

Cause

根據日誌分析,我們可以看到問題出在“pflex”用戶許可權上。由於權限問題,「pflex」無法將憑證從來源複製到目的地。

Resolution

修正 pflex 使用者在節點上的權限,可解決此問題:

在主機上: 

usermod -a -G trusted pflex
cd /etc/sudoers.d
cp -p common-criteria common-criteria.2024-05-10
update: common-criteria
%trusted ALL=(ALL) NOPASSWD: ALL

測試

sudo su - pflex
sudo ls -ltra

Affected Products

PowerFlex rack, ScaleIO
Article Properties
Article Number: 000227009
Article Type: Solution
Last Modified: 03 Feb 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.