Điểm:1

Tại sao chạy lần thứ hai ansible.windows.win_package không hoạt động?

lá cờ uz

Tôi có một sản phẩm mà tôi có thể cài đặt nó trước, sau đó cập nhật nó - nghĩa là thêm nhiều tính năng hơn vào sản phẩm cơ sở của tôi

Tôi thực hiện bằng cách chạy MSI lần đầu, sau đó vào Add \ Remove Programs và khi chọn sản phẩm, bạn có thể nhấp vào "Thay đổi" và Trình hướng dẫn cài đặt sẽ hiển thị lại, cho phép bạn chọn và cài đặt tính năng bổ sung trong sản phẩm

Tôi đã tạo 2 vai trò ansible và playbook cho nhiệm vụ này Vai trò đầu tiên sử dụng ansible.windows.win_package để cài đặt sản phẩm cơ sở (xem ví dụ bên dưới)

- tên: Cài đặt Server.msi Primary_appserver
  ansible.windows.win_package:
    đường dẫn: C:\product.msi
    log_path: C:\InstallProduct.log
    tranh luận:
     ADDLOCAL=DB,Đại lý
    trạng thái: hiện tại
  trở thành sự thật
  trở thành_method: runas
  lọ:
    ansible_become_user: "{{ ansible_user }}"
    ansible_become_password: "{{ ansible_password }}"
  khi: "'primary_appservers' trong group_names"

Vai trò thứ hai sử dụng lại ansible.windows.win_package với các đối số ADDLOCAL khác nhau (các tính năng bổ sung):

- tên: Cài đặt Engine chính_appserver
  ansible.windows.win_package:
    đường dẫn: C:\product.msi
    log_path: C:\InstallEngine.log
    tranh luận:
     ADDLOCAL=Động cơ
    trạng thái: hiện tại
  trở thành sự thật
  trở thành_method: runas
  lọ:
    ansible_become_user: "{{ ansible_user }}"
    ansible_become_password: "{{ ansible_password }}"
  khi: "'primary_appservers' trong group_names"

Vai trò đầu tiên hoạt động tốt và thực thi tệp msi, Vai trò thứ hai - không Nếu tôi thực hiện hai tác vụ đó, với CLI, msiexec /i thì nó hoạt động tốt Vậy, Tại sao nó không hoạt động khi thực hiện ansible.windows.win_package?

lá cờ in
Tôi đoán sẽ là `trạng thái: hiện tại`. Nó đã có sẵn, vì vậy không cần phải chạy lại. Có bất kỳ tệp/thư mục hoặc dịch vụ nào mà bạn có thể kiểm tra bằng `creates_path` hoặc `creates_service` chỉ được tạo trong lần chạy thứ hai không?
lá cờ uz
một tệp nhật ký cài đặt mới có thể được xem xét?
lá cờ in
Có khả năng. Nó đáng để thử.
lá cờ uz
Tính năng bổ sung - nên thêm thư mục bổ sung có tên "Engine" trong thư mục sản phẩm. Chúng ta có thể sử dụng nó trong khóa ```create_path``` không?
lá cờ in
Vâng, đó là mục đích của `create_path`, để kiểm tra xem nó có tồn tại hay không. Nếu không, nhiệm vụ của bạn sẽ được thực hiện.
lá cờ uz
@GeraldSchneider Tôi đã xóa ```state``` và thêm khóa ```creates_path``` - Nó hoạt động như một phép thuật. Cảm ơn
Điểm:1
lá cờ in

Vấn đề này có lẽ là nhất trạng thái: hiện tại tham số, vì gói đã có sẵn khi tác vụ được chạy. Thay vào đó bạn có thể sử dụng tạo_path hoặc tạo_dịch vụ params để kiểm tra xem có cần cài đặt gói không.

Ví dụ:

- tên: Cài đặt Engine chính_appserver
  ansible.windows.win_package:
    đường dẫn: C:\product.msi
    log_path: C:\InstallEngine.log
    tranh luận:
    ADDLOCAL=Công cụ
    tạo_path: "C:\Đường dẫn\đến\sản phẩm\thư mục"
  trở thành sự thật
  trở thành_method: runas
  lọ:
    ansible_become_user: "{{ ansible_user }}"
    ansible_become_password: "{{ ansible_password }}"
  khi: "'primary_appservers' trong group_names"

Đă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.