Обновить все программное обеспечение. Если у вас установлено неофициальное программное обеспечение (видеодрайверы, ...), пока что избавьтесь от него. Затем попробуйте еще раз. В частности, драйверы nVidia известны тем, что вызывают нестабильность, а используемые драйверы Windows, хотя ndiswrapper, в основном работают по ошибке.
Случайные сбои (если выходная мощность каждый раз различается) обычно являются результатом перегрева (плохие вентиляторы, засохшая термопаста, воздушный поток, затрудненный пылью / засорение дыхательных путей).Я также видел такое, когда ОЗУ или другие компоненты не вставлены прочно.
Это могло быть из-за плохой оперативной памяти, запустите memtest (это может быть опция в вашем загрузочном меню). Да, это занимает очень много времени. Другие проблемы с оборудованием - более отдаленные возможности.
Технически это 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, потому что:
Вы все равно столкнетесь с большими различиями; например:
httpd
(RHEL )противapache2
(Debian )./etc/default
(Debian )против/etc/sysconfig
(RHEL ). systemd
в значительной степени взял верх. Системы управления конфигурацией — это способ абстрагирования среды в код; и они дают вам логику/условия, чтобы вы могли сделать это самостоятельно .
Nix — это автономный менеджер пакетов, который не привязан жестко ни к одной ОС. Я использую его на MacOS, а также на Ubuntuhttps://nixos.org/nix/
Saltstack (Компатитор Ansible )имеет лучшую абстракцию с pkg.installed, и вам не нужно заботиться о том, является ли базовая система apt, rpm или arch... (все же необходимо установить имя diff pkg, если они diff в системах, например, httpd или apache2)
Поддержание менеджера мета -пакетов -кажется мне сизифовой задачей, так как кто-то должен будет поддерживать своего рода "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
— это 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 }}"