Существует ли программное обеспечение для управления конфигурацией, не зависящее от дистрибутива?

Обновить все программное обеспечение. Если у вас установлено неофициальное программное обеспечение (видеодрайверы, ...), пока что избавьтесь от него. Затем попробуйте еще раз. В частности, драйверы nVidia известны тем, что вызывают нестабильность, а используемые драйверы Windows, хотя ndiswrapper, в основном работают по ошибке.

Случайные сбои (если выходная мощность каждый раз различается) обычно являются результатом перегрева (плохие вентиляторы, засохшая термопаста, воздушный поток, затрудненный пылью / засорение дыхательных путей).Я также видел такое, когда ОЗУ или другие компоненты не вставлены прочно.

Это могло быть из-за плохой оперативной памяти, запустите memtest (это может быть опция в вашем загрузочном меню). Да, это занимает очень много времени. Другие проблемы с оборудованием - более отдаленные возможности.

8
09.01.2019, 17:58
4 ответа

Технически это Ansible; потому что агент -меньше; Я использовал его для управления маршрутизаторами, коммутаторами, серверами и т. д.

Похоже, вы спрашиваете, поддерживает лиpackageмодуль Arch Linux? Мне лень проверять, поддерживает ли это Arch; но если это не так, всегда естьpacmanмодуль ... А если это не работает... Всегда можно написать свой собственный модуль.

Однако вы говорите о более серьезной проблеме, связанной с запуском нескольких различных дистрибутивов в производственной среде . Становится больно управлять долгосрочной перспективой. Вот почему рекомендуется не запускать несколько дистрибутивов в продакшене, так как с точки зрения управления (чисто из кода )это много работы. Самый очевидный способ обойти это — с помощью Ansible использовать whenв сочетании с os_family:

.
    apt:
      name: apache2
    when: ansible_facts['os_family'] == "Debian"

    pacman:
      name: nginx
    when: ansible_facts['os_family'] == "Archlinux"

Я был в ситуации, когда мне приходилось управлять серверами Debian и серверами CentOS в производственной среде; в конце концов я решил перейти на чистый Debian, потому что:

  • Кодовая база для CM была сокращена вдвое (вся логика для особенностей дистрибутива была удалена ).
  • Тестирование стало менее болезненным (если вы не тестируете свой код CM, значит, вы делаете это неправильно ).

Вы все равно столкнетесь с большими различиями; например:

  • Некоторые пакеты называются по-разному;httpd(RHEL )противapache2(Debian ).
  • Различные каталоги конфигурации "по умолчанию";/etc/default(Debian )против/etc/sysconfig(RHEL ).
  • Различные системы инициализации; хотя systemdв значительной степени взял верх.
  • Нет SSH; например WinRM для Windows.

Системы управления конфигурацией — это способ абстрагирования среды в код; и они дают вам логику/условия, чтобы вы могли сделать это самостоятельно .

11
27.01.2020, 20:08

Nix — это автономный менеджер пакетов, который не привязан жестко ни к одной ОС. Я использую его на MacOS, а также на Ubuntuhttps://nixos.org/nix/

Saltstack (Компатитор Ansible )имеет лучшую абстракцию с pkg.installed, и вам не нужно заботиться о том, является ли базовая система apt, rpm или arch... (все же необходимо установить имя diff pkg, если они diff в системах, например, httpd или apache2)

2
27.01.2020, 20:08

Поддержание менеджера мета -пакетов -кажется мне сизифовой задачей, так как кто-то должен будет поддерживать своего рода "apache2" в Debian -вроде " httpd" в RHEL -любит (и так далее )Rosetta Stone.

Тем не менее, существует модуль pacman для Ansible, который предназначен -для использования Ansible (дистрибутивного -независимого инструмента управления, который вы ищете )для управления пакетами. на Arch -подобных системах. Из раздела «Примеры» документации связанного модуля:

- name: Install package foo
  pacman:
    name: foo
    state: present

- name: Upgrade package foo
  pacman:
    name: foo
    state: latest
    update_cache: yes

- name: Remove packages foo and bar
  pacman:
    name: foo,bar
    state: absent

- name: Recursively remove package baz
  pacman:
    name: baz
    state: absent
    recurse: yes
6
27.01.2020, 20:08
Пакет

— это Ansible «Универсальный диспетчер пакетов ОС».

Вариантом может быть включение специфичного для ОС списка _из _пакетов

- include_vars: "{{ item }}"
   with_first_found:
     - files:
         - "{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml"
         - "{{ ansible_distribution }}.yml"
         - "{{ ansible_os_family }}.yml"
         - "default.yml"
       paths: "{{ role_path }}/vars"

и установите пакеты

- package:
    state: present
    name: "{{ item }}"
  loop: "{{ list_of_packages }}"
2
27.01.2020, 20:08

Теги

Похожие вопросы