Điểm:0

ansible [Errno 2] Tệp hoặc thư mục trong tên đường dẫn không tồn tại

lá cờ cn

Tôi đang thực hiện thông qua một tháp ansible đoạn mã sau:

 chỉ huy:
   chdir={{ __iim_install_location }}/eclipse/tools/
   "su - {{ __was_user }} -c {{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory {{ __was_install_location} } -log {{ __log_file }}"
 đăng ký: cout
 with_items: "{{ __was_this_files }}"
 đã thay đổi khi: cout.stdout được xác định và ( cout.stdout.find( __version_check ) != -1)

Tôi nhận được lỗi sau. Tôi xác thực và tất cả các đường dẫn tồn tại trong Máy chủ từ xa.

{
    "ansible_loop_var": "mục",
    "_ansible_no_log": sai,
    "đã thay đổi": sai,
    "mục": {
        "check_sum": "866C82D13C24189E880C70AF7AE20143851330AD1C090E0DCF687B612BBC8513",
        "file_name": "8.5.5.16-ws-was-ifph42899.zip"
    },
    "cmd": "'su - was -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl install 8.5.5.16-WS-WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -kho /mnt/software/IBM/ WAS/8.5.5.16-ws-was-ifph42899.zip -installationDirectory /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/was/logs/was_nd_fix_install.20211223102239.log'",
    "_ansible_item_label": {
        "check_sum": "866C82D13C24189E880C70AF7AE20143851330AD1C090E0DCF687B612BBC8513",
        "file_name": "8.5.5.16-ws-was-ifph42899.zip"
    },
    "rc": 2,
    "yêu cầu": {
        "module_args": {
            "tạo": null,
            "thực thi": null,
            "chdir": "/opt/IBM/was/InstallationManager/eclipse/tools/",
            "strip_empty_ends": đúng,
            "_raw_params": "\"su - was -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl install 8.5.5.16-WS-WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -repositories /mnt/software/IBM /WAS/8.5.5.16-ws-was-ifph42899.zip -installationDirectory /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/was/logs/was_nd_fix_install.20211223102239.log\"",
            "loại bỏ": null,
            "argv": không,
            "cảnh báo": đúng,
            "_uses_shell": sai,
            "stdin_add_newline": đúng,
            "stdin": không
        }
    },
    "msg": "[Errno 2] Tệp hoặc thư mục trong tên đường dẫn không tồn tại.: b'su - was -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl install 8.5.5.16-WS- WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -kho lưu trữ /mnt/software/IBM/WAS/8.5.5.16-ws-was-ifph42899.zip -installationDirectory /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/ was/logs/was_nd_fix_install.20211223102239.log': b'su - was -c /opt/IBM/was/InstallationManager/eclipse/tools/imcl cài đặt 8.5.5.16-WS-WAS-IFPH42899_8.5.5016.20211218_1245 -acceptLicense -repositories /mnt/software/IBM/WAS/8.5.5.16-ws-was-ifph42899.zip -installationDirectory /opt/IBM/was5/WebSphere/AppServer -log /opt/IBM/was/logs/was_nd_fix_install.20211223102239.log'"
}
Điểm:0
lá cờ jp

Lệnh được truyền dưới dạng tham số -c của su cần được trích dẫn.

Điểm:0
lá cờ cn

Sau tất cả các câu trả lời và đề xuất, tôi đã kết thúc với đoạn mã sau hoạt động:

- tên: Cập nhật phần mềm WAS của IBM
  chỉ huy:
    cmd: "su - {{ __was_user }} -c '{{ __iim_install_location}}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory { { __was_install_location}} -log {{ __log_file }}'"
  lập luận: 
    chdir: "{{ __iim_install_location }}/eclipse/tools/"
  đăng ký: cout
  with_items: "{{ __was_this_files }}"
  đã thay đổi khi: cout.stdout được xác định và ( cout.stdout.find( __version_check ) != -1)
´´´
Điểm:0
lá cờ cn

Có vẻ như nó đang coi chuỗi lệnh của bạn là một tệp.

Tôi tin rằng nếu bạn thay đổi lối chơi của mình thành thế này:

chỉ huy:
  chdir: {{ __iim_install_location }}/eclipse/tools/
  cmd: "su - {{ __was_user }} -c {{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory {{ __was_install_location}} -log {{ __log_file }}"
đăng ký: cout
with_items: "{{ __was_this_files }}"
đã thay đổi khi: cout.stdout được xác định và ( cout.stdout.find( __version_check ) != -1)

Cụ thể tiền tố lệnh với cmd: , nó nên làm việc?

João Pedro Alexandre avatar
lá cờ cn
Cảm ơn, tôi sẽ thử nó.
João Pedro Alexandre avatar
lá cờ cn
Có gì đó không ổn với sintaxe đó. Bây giờ tôi có những điều sau đây: { "lý do": "Chúng tôi không thể đọc dưới dạng JSON hay YAML, đây là những lỗi chúng tôi gặp phải từ mỗi lỗi: JSON: Không thể giải mã đối tượng JSON\n\nLỗi cú pháp khi tải YAML.\n giá trị ánh xạ không được phép trong bối cảnh này\n\nCó vẻ như lỗi nằm trong .../project/roles/was-install-ifix/tasks/install_ifix.yml': dòng 5, cột 8, nhưng có thể\nở đâu đó trong tệp tùy thuộc vào chính xác vấn đề về cú pháp.\n\nDòng vi phạm dường như là:\n\n chdir={{ __iim_install_location }}/eclipse/tools/\n
João Pedro Alexandre avatar
lá cờ cn
cmd: \"su - {{ __was_user }} -c {{ __iim_install_location }}/eclipse/tools/imcl install {{ __product_id }} -acceptLicense -repositories {{ __tmp_dir }}/{{ item.file_name }} -installationDirectory { { __was_install_location}} -log {{ __log_file }} Chúng tôi có thể sai, nhưng vấn đề này có vẻ như là do\nthiếu dấu ngoặc kép. Luôn trích dẫn dấu ngoặc của biểu thức mẫu khi chúng\nbắt đầu một giá trị. Ví dụ:\n\n with_items:\n - {{ foo }}\n\nNên viết là:\n\n with_items:\n - \"{{ foo }}\"\n" }
lá cờ cn
À, đặt đối số thành `chdir:` trong dấu ngoặc kép. Nhưng không trốn thoát những người.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.