Điểm:0

Vai trò ansible, có thể xác định các biến theo điều kiện không?

lá cờ ng

Tôi có một vai trò Ansible sử dụng nhiều biến và vì các biến đó được điều chỉnh sau khi cấu hình máy chủ (như phiên bản hệ điều hành mà nó đang sử dụng), thư mục "MyRole/vars" của tôi chứa đầy các tệp khác nhau cho các trường hợp khác nhau.

Trong "MyRole/vars" tôi có:

  • RedHat6_install.yml
  • Redhat7_install.yml
  • RedHat8_install.yml
  • RedHat6_uninstall.yml
  • RedHat7_uninstall.yml
  • RedHat8_uninstall.yml

Và như thế...

Tôi đã tự hỏi liệu có thể nhóm các biến trong một tệp và tạo điều kiện cho nó như sau:

chính.yml:

    - gỡ cài đặt_var_1
      khi nào: >
            ansible_distribution_major_version == 6
    - gỡ cài đặt_var_2
      khi nào: >
            ansible_distribution_major_version == 7
    - gỡ cài đặt_var_3
      khi nào: >
            ansible_distribution_major_version == 8

và như thế...
lá cờ br
Xem [al_include_os_vars_path.yml](https://github.com/vbotka/ansible-lib/blob/master/tasks/al_include_os_vars_path.yml) cách sử dụng *first_found* và [al_include_os_vars_path_incr.yml](https://github. com/vbotka/ansible-lib/blob/master/tasks/al_include_os_vars_path_incr.yml) để bao gồm các phần tăng dần.
Điểm:0
lá cờ cz

Có lẽ có nhiều cách tốt hơn để làm điều này và tôi rất mong được nhìn thấy chúng, nhưng những gì tôi đang làm trông rất giống thế này. Lấy từ vai trò fail2ban tùy chỉnh mà tôi đang sử dụng:

Các vars trông như thế này. Tôi có các tệp vars cho mỗi {{ansible_os_family}} và sau đó ghi đè cho bất kỳ {{ansible_distribution}}_{{ansible_distribution_major_version}} mà có thể cần chúng.

$ ls -l
lrwxrwxrwx. 1 lỗi lỗi 24 ngày 7 tháng 5 07:51 fail2ban_os_CentOS_6.yml -> fail2ban_os_RedHat_6.yml
lrwxrwxrwx. 1 lỗi lỗi 22 ngày 7 tháng 5 07:51 fail2ban_os_CentOS.yml -> fail2ban_os_RedHat.yml
-rw-rw-r--. 1 lỗi lỗi 64 ngày 7 tháng 5 07:51 fail2ban_os_Debian.yml
-rw-rw-r--. 1 lỗi lỗi 64 ngày 7 tháng 5 07:51 fail2ban_os_Fedora.yml
-rw-rw-r--. 1 lỗi error 62 May 7 07:51 fail2ban_os_RedHat_6.yml
-rw-rw-r--. 1 lỗi lỗi 64 ngày 7 tháng 5 07:51 fail2ban_os_RedHat.yml
-rw-rw-r--. 1 lỗi lỗi 62 Ngày 7 tháng 5 07:51 fail2ban_os_Ubuntu_14.yml
-rw-rw-r--. 1 lỗi lỗi 65 ngày 7 tháng 5 07:51 fail2ban_os_Ubuntu.yml
$ mèo fail2ban_os_Ubuntu.yml 
fail2ban_backend: systemd
fail2ban_banaction: iptables-multiport
$ mèo fail2ban_os_Fedora.yml 
fail2ban_backend: systemd
fail2ban_banaction: tường lửacmd-ipset

Để tải các tệp này, vai trò/fail2ban/nhiệm vụ/main.yml bắt đầu như thế này:

---
- include_vars: fail2ban_os_{{ansible_os_family}}.yml
  bỏ qua_lỗi: Đúng

- include_vars: fail2ban_os_{{ansible_distribution}}_{{ansible_distribution_major_version}}.yml
  bỏ qua_lỗi: Đúng

Điều đó có nghĩa là các tệp biến không cần tồn tại. Tất nhiên, nếu các biến cần thiết không được xác định ở đâu đó, các tác vụ sau này sẽ không thành công và sau đó bạn có thể xác định bất cứ điều gì bạn đã bỏ lỡ.

Để giữ cho mọi thứ nhất quán và có thể bảo trì, các tệp vars của họ hệ điều hành chung chứa các vars đại diện cho các bản phân phối được hỗ trợ gần đây nhất và các phần ghi đè cho các phiên bản bản phân phối cụ thể dành cho các bản phân phối cũ hơn.

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