Existe um software de gerenciamento de configuração não agnóstico?
Não quero me rotular para módulos específicos do gerenciador de configuração, como o aptmódulo ou o módulo da Ansible yum.
Existe um software de gerenciamento de configuração não agnóstico ou pelo menos um com código não agnóstico para instalar os seguintes pacotes também para o Arch Linux ?
Eu pergunto isso porque não encontrei uma função de galáxia Ansible adequada para instalar o LAMP no Arch Linux e o seguinte script Bash para Debian não é adequado para o Arch:
apt upgrade lamp-server^ ssmtp  -y
apt upgrade python-certbot-apache  -y
apt upgrade php-{cli,curl,mbstring,mcrypt,gd} phpmyadmin  -y
Tecnicamente, Ansible é isso; porque é sem agente; Eu o usei para gerenciar roteadores, switches, servidores, etc.
O que parece que você está pedindo é se o packagemódulo suporta o Arch Linux? Estou com preguiça de testar se isso suporta o Arch; mas se não existir, sempre existe o pacmanmódulo ... E se isso não funcionar ... Sempre há o seu próprio módulo.
O que você está falando é um problema maior com a execução de várias distribuições diferentes em um ambiente de produção . Torna-se doloroso para gerenciar a longo prazo. É por isso que é uma boa prática não executar várias distribuições na produção, pois, da perspectiva do gerenciamento (puramente do código), é muito trabalhoso. A maneira mais óbvia de contornar isso é com o Ansible usando whenem combinação com os_family:
Eu já estive em uma situação em que tive que gerenciar servidores Debian e servidores CentOS em produção; eventualmente, eu escolhi o Debian puro porque:
A base de código para CM foi cortada ao meio (toda a lógica para peculiaridades específicas da distribuição foi removida).
O teste ficou menos doloroso (se você não estiver testando seu código CM, estará fazendo errado).
Você também encontrará grandes diferenças de qualquer maneira; por exemplo:
Alguns pacotes têm nomes diferentes; httpd(RHEL) vs apache2(Debian).
Diretórios de configuração "padrão" diferentes; /etc/default(Debian) vs /etc/sysconfig(RHEL).
Diferentes sistemas init; embora systemdtenha assumido em grande parte.
Sem SSH; por exemplo, WinRM para Windows.
Os sistemas de gerenciamento de configuração são uma maneira de abstrair o ambiente em código; e eles fornecem lógica / condicionais para você fazer isso sozinho .
O packagemódulo apenas chama o módulo definido no ansible_pkg_mgrfato para esse sistema. Portanto, qualquer sistema de empacotamento suportado pela Ansible funcionará.
Manter um gerenciador de meta-pacotes parece-me uma tarefa sísifa, já que alguém teria que manter algum tipo de "apache2" em curtidas no Debian é "httpd" em curtidas no RHEL (etc) Rosetta Stone.
No entanto, existe um módulo pacman para o Ansible, desenvolvido especificamente para o uso do Ansible (a ferramenta de gerenciamento não agnóstico que você está procurando) para gerenciar pacotes em sistemas do tipo Arch. Na seção Exemplos da documentação do módulo vinculado:
- name: Install package foo
- name: Upgrade package foo
- name: Remove packages foo and bar
name: foo,bar
- name: Recursively remove package baz
O pacote é Ansible "Generic OS package manager".
Uma opção seria incluir list_of_packages específico do SO
- "{{ ansible_distribution }}-{{ ansible_distribution_release }}.yml"
- "default.yml"
paths: "{{ role_path }}/vars"
e instale os pacotes
O Nix é um gerenciador de pacotes independente que não se liga firmemente a nenhum sistema operacional. Eu o uso no MacOS e também no Ubuntu https://nixos.org/nix/
O Saltstack (compatível com Ansible) tem uma abstração melhor com o pkg.installed e você não precisa se preocupar com o sistema subjacente é apt ou rpm ou arch ... (ainda é necessário definir o nome do diff pkg se eles diferirem em sistemas, por exemplo, httpd ou apache2)