O Ansible apt_repository O módulo pode ser usado para adicionar e remover repositórios de pacotes e PPAs em seus hosts do Ubuntu com facilidade. Você também pode atualizar o cache do repositório de pacotes apt usando o Ansible apt_repository módulo.
Este artigo mostrará como gerenciar repositórios de pacotes do Ubuntu e PPAs usando o Ansible apt_repository módulo. Então vamos começar.
Pré -requisitos
Se você quiser experimentar os exemplos incluídos neste artigo:
1) Você deve ter o Ansible instalado em seu computador.
2) Você deve ter um host ubuntu configurado para automação Ansible.
Existem muitos artigos sobre Linuxhint dedicados à instalação do Ansible e configurando hosts para Ansible Automation. Você pode verificar esses artigos se precisar de informações adicionais.
Configurando o diretório do projeto
Antes de começarmos, será uma boa ideia criar uma estrutura de diretório de projeto, apenas para manter as coisas um pouco mais organizadas.
Para criar o diretório do projeto apt-pppa-repo/ E todos os subdiretos necessários (em seu diretório de trabalho atual), execute o seguinte comando:
$ mkdir -pv apt-pppa-repo/playbooks
Depois que o diretório do projeto for criado, navegue até o diretório do projeto, como segue:
$ CD APT-PPA-REPO
Criar uma anfitriões Arquivo de inventário, como segue:
$ nano hosts
Adicione o nome IP do host ou DNS (VM7.NodeKite.com e vm8.NodeKite.com, no meu caso) de seus hosts do Ubuntu no arquivo de inventário.
Depois de terminar, salve o arquivo pressionando + X, seguido pela Y e .
Crie um arquivo de configuração Ansible no diretório do projeto, como segue:
$ Nano Ansible.cfg
Digite as seguintes linhas no Ansible.cfg arquivo:
[Padrões]Depois de terminar, salve o arquivo pressionando + X, seguido pela Y e .
Neste ponto, o diretório do projeto deve parecer o seguinte:
$ árvore
Como você pode ver, os anfitriões Ansible são acessíveis. Então, podemos passar para a próxima seção deste artigo.
$ Ansible All -u Ansible -M Ping
Adicionando repositórios de pacotes
Nesta seção, mostrarei como adicionar um repositório de pacotes no Ubuntu usando Ansible.
Primeiro, crie um novo manual chamado add_repo.Yaml no Playbooks/ Diretório, como segue:
$ nano Playbooks/add_repo.YamlDigite as seguintes linhas no add_repo.Yaml arquivo:
- Hosts: todosDepois de terminar, salve o arquivo pressionando + X, seguido pela Y e .
Aqui o repo opção do apt_repository O módulo é usado para especificar a linha de repositório de pacotes apt (no meu caso, Deb http: // arquivamento.Ubuntu.universo focal com/ubuntu) do repositório de pacotes que você deseja adicionar (no meu caso, o Ubuntu 20.04 LTS OFICIAL universo repositório).
Para saber mais sobre o formato da linha de repositório de pacote apt, leia o Arquivos de configuração do repositório de pacotes ubuntu Seção do artigo Como usar o APT Package Manager no Ubuntu 20.04 LTS.
Enquanto estou adicionando um novo repositório de pacotes aqui, o estado é presente.
O update_cache a opção pode ser Verdadeiro/sim ou Falso/não.
Se o update_cache está configurado para Verdadeiro, Ansible atualizará o cache do repositório de pacotes apt após adicionar o repositório do pacote.
Se o update_cache está configurado para Falso, Ansible não atualizará o cache do repositório de pacotes apt.
Aqui, quero que o repositório do pacote apt seja atualizado assim que o novo repositório de pacotes for adicionado. Então, eu defino o update_cache para Verdadeiro.
Agora, execute o add_repo.Yaml Manual, como segue:
$ Ansible-Playbook Playbooks/add_repo.YamlComo você pode ver, o manual correu com sucesso.
Para confirmar que o repositório do pacote (no meu caso, o Ubuntu 20.04 LTS universo repositório) é adicionado, execute o seguinte comando:
$ grep -cor -r 'http: // arquivamento.Ubuntu.com '/etc/apt/fontes.lista
/etc/apt/fontes.lista.d/*.lista
Como você pode ver, um novo arquivo foi criado no /etc/apt/fontes.lista.d/ Diretório (1) e o Ubuntu 20.04 LTS universo Repositório de pacotes foi adicionado (2).
Por padrão, Ansible gerará automaticamente o a .lista arquivo no /etc/apt/fontes.lista.d/ diretório, dependendo da linha de repositório APT.
Se você deseja escolher um nome de arquivo específico (i.e. Ubuntu-universo.lista) para o seu repositório, você pode especificar um nome de arquivo usando o nome do arquivo opção do apt_repository módulo em seu add_repo.Yaml Playbook, conforme mostrado na captura de tela abaixo.
Agora, execute o add_repo.Yaml Manual novamente.
$ Ansible-Playbook Playbooks/add_repo.YamlComo você pode ver, o nome do arquivo é o mesmo nome que eu especifiquei.
$ grep -cor -r 'http: // arquivamento.Ubuntu.com '/etc/apt/fontes.lista
/etc/apt/fontes.lista.d/*.lista
Remoção de repositórios de pacotes
Nesta seção, mostrarei como remover um repositório de pacotes existente de seus hosts do Ubuntu usando Ansible.
O manual para remover um repositório de pacotes é quase o mesmo que adicionar um repositório de pacotes. Então, você pode simplesmente copiar o add_repo.Yaml Arquivo de Playbook e modifique um pouco. Isso é muito simples de fazer.
Primeiro, copie o add_repo.Yaml arquivo para remove_repo.Yaml, do seguinte modo:
$ cp -v Playbooks/add_repo.Playbooks YAML/Remone_repo.YamlEditar o remove_repo.Yaml Manual, como segue:
$ Nano Playbooks/Remone_repo.YamlMudar Estado: presente para estado: ausente, conforme marcado na captura de tela abaixo. Esta será a única mudança que você precisa fazer.
Depois de terminar, salve o arquivo pressionando + X, seguido pela Y e .
Execute o remove_repo.Yaml Manual, como segue:
$ Ansible-Playbook Playbooks/Remow_repo.YamlEm seguida, execute o seguinte comando para verificar se o repositório de pacotes que você deseja remover foi realmente removido.
$ grep -cor -r 'http: // arquivamento.Ubuntu.com '/etc/apt/fontes.listaComo você pode ver, o Ubuntu 20.04 LTS OFICIAL universo Repositório de pacotes que adicionei anteriormente foi removido.
OBSERVAÇÃO: Ignore a mensagem de erro. Esta mensagem significa apenas que o /etc/apt/fontes.lista.d/ diretório está vazio. Se você deseja remover a mensagem de erro, basta adicionar um 2>/dev/nulo No final do comando, como segue. O erro deve desaparecer depois de atrair este comando.
$ grep -cor -r 'http: // arquivamento.Ubuntu.com '/etc/apt/fontes.listaAdicionando PPAs
Nesta seção, mostrarei como adicionar um PPA em seus hosts do Ubuntu usando Ansible.
Vou adicionar o Osomon/NodeJS-10.19-focal Nó.JS 10.19 PPA para Ubuntu 20.04 LTS no meu exemplo.
Primeiro, crie um novo manual add_ppa.Yaml, do seguinte modo:
$ nano Playbooks/add_ppa.YamlAdicione as seguintes linhas em seu add_ppa.Yaml livro de cantadas:
- Hosts: todosDepois de terminar, salve o add_ppa.Yaml Playbook pressionando + X, seguido pela Y e .
Aqui o repo opção do apt_repository O módulo é usado para adicionar o PPA Osomon/NodeJS-10.19-focal (1).
Certifique -se de adicionar PPA: Antes do nome da PPA, eu.e. PPA: Osomon/Nodejs-10.19-focal.
A maioria dos PPAs usa certificados autoassinados, para que o Ansible não possa verificá-los para você, e eles podem errar quando você executa o manual.
Você pode definir validate_certs para Falso Para pular a validação do certificado para o PPA que você está adicionando (2). Isso é o que eu fiz no exemplo deste artigo.
OBSERVAÇÃO: Você também pode definir validate_certs para Falso Para pular a validação da certificação ao adicionar repositórios de pacote de terceiros.
Execute o add_ppa.Yaml Manual, como segue:
$ Ansible-Playbook Playbooks/add_ppa.YamlComo você pode ver, um novo .lista Arquivo para o PPA Osomon/NodeJS-10.19-focal foi criado no /etc/apt/fontes.lista.d/ diretório (1).
Olhando para o conteúdo do PPA_OSOMON_NODEJS_10_19_FOCAL_FOCAL.lista Arquivo, posso confirmar que o PPA foi adicionado (2).
$ árvore/etc/apt/fontes.lista.d/Remoção de PPAs
Você pode remover PPAs da mesma maneira que removemos repositórios de pacotes na seção anterior deste artigo.
Basta copiar o app_ppa.Yaml manual para remove_ppa.Yaml, do seguinte modo:
$ cp -v Playbooks/add_repo.Playbooks YAML/Remone_repo.YamlAgora, abra o remove_ppa.Yaml Manual, como segue:
$ Nano Playbooks/Remone_ppa.YamlEm seguida, mude a linha Estado: presente para estado: ausente, conforme marcado na captura de tela abaixo.
Depois de terminar, salve o remove_ppa.Yaml Playbook pressionando + X, seguido pela Y e .
Execute o remove_ppa.Yaml Manual, como segue:
$ Ansible-Playbook Playbooks/add_ppa.YamlComo você pode ver, o PPA_OSOMON_NODEJS_10_19_FOCAL_FOCAL.lista Arquivo para o Osomon/NodeJS-10.19-focal O PPA não está mais disponível no /etc/apt/fontes.lista.d/ diretório. Então, o PPA Osomon/NodeJS-10.19-focal foi removido.
$ árvore/etc/apt/fontes.lista.d/
Alteração do codinome PPA
Às vezes, o PPA que você está tentando adicionar ao seu host ubuntu não suporta a versão do Ubuntu que você está executando. Nesse caso, você terá que especificar o codinome da versão do Ubuntu manualmente ao adicionar o PPA.
Suponha que você esteja executando o Ubuntu 20.04 com codinome focal e você está tentando adicionar o PPA XYZ, Mas o PPA XYZ Somente suporta o Ubuntu 16.04 LTS Codename acolhedor. Se você tentar adicionar o PPA XYZ, Você receberá um erro, pois o PPA não tem nenhum pacote para o Ubuntu 20.04 CodEname focal. Mas, se você especificar o Ubuntu 16.04 LTS Codename acolhedor Ao adicionar o PPA, você não receberá nenhum erro. Você poderá instalar o pacote desejado do PPA dessa maneira, mesmo que não suportem a versão explícita do Ubuntu que você está executando no momento.
Vamos ver um exemplo.
Primeiro, copie o add_ppa.Yaml arquivo de manual para Change_ppa_codename.Yaml, do seguinte modo:
$ CP -V Playbooks/add_ppa.Playbooks YAML/Change_ppa_codename.YamlEm seguida, abra o Change_ppa_codename.Yaml arquivo, como segue:
$ Nano Playbooks/Change_ppa_codename.YamlAqui, tudo que você precisa fazer é adicionar o nome de código opção com o codinome ubuntu desejado (eu.e. Codinome: Xenial), conforme marcado na captura de tela abaixo.
Depois de terminar, salve o Change_ppa_codename.Yaml arquivo pressionando + X, seguido pela Y e .
Execute o Change_ppa_codename.Yaml Manual, como segue:
$ Ansible-Playbook Playbooks/Change_ppa_codename.YamlOBSERVAÇÃO: Estou recebendo um erro porque o PPA que adicionei aqui suporta apenas o Ubuntu 20.04 LTS. Você pode simplesmente ignorar esta mensagem.
Como você pode ver, o PPA foi adicionado e o codinome ubuntu acolhedor está na linha de repositório de pacote APT.
Conclusão
Este artigo mostrou como gerenciar (Adicionar/Remover) Repositórios de Pacote Ubuntu e PPAs usando Ansible.
O Ansible apt_repository O módulo é usado para gerenciar repositórios de pacotes do Ubuntu e PPAs. Este artigo explicou todas as opções importantes do apt_repository módulo de Ansible.
Para obter mais informações, verifique a página de documentação do oficial Apt_repository Ansible.