Ansible

Beheer Ubuntu-pakketbronnen en PPA's met Ansible

Beheer Ubuntu-pakketbronnen en PPA's met Ansible
Het toevoegen en verwijderen van pakketrepositories en PPA's in Ubuntu op uw persoonlijke systeem kan een heel eenvoudige taak zijn. Als u echter veel Ubuntu-machines hebt, bijvoorbeeld 10 of meer, dan zal het handmatig toevoegen en verwijderen van pakketrepository's en PPA's op elk systeem zowel tijdrovend als inefficiënt zijn.

De Ansible apt_repository module kan worden gebruikt om pakketrepository's en PPA's op uw Ubuntu-hosts gemakkelijk toe te voegen en te verwijderen. U kunt de cache van de APT-pakketrepository ook bijwerken met de Ansible apt_repository module.

Dit artikel laat u zien hoe u Ubuntu-pakketrepository's en PPA's beheert met behulp van de Ansible apt_repository module. Dus laten we beginnen.

Vereisten

Als u de voorbeelden in dit artikel wilt uitproberen:

1) Je moet Ansible op je computer hebben geïnstalleerd.
2) U moet een Ubuntu-host hebben geconfigureerd voor Ansible-automatisering.

Er zijn veel artikelen over LinuxHint gewijd aan het installeren van Ansible en het configureren van hosts voor Ansible-automatisering. U kunt deze artikelen bekijken als u aanvullende informatie nodig heeft.

Projectmap instellen

Voordat we beginnen, is het een goed idee om een ​​projectdirectorystructuur te maken, om de zaken een beetje overzichtelijk te houden.

De projectdirectory maken: apt-ppa-repo/ en alle vereiste subdirectories (in uw huidige werkdirectory), voert u de volgende opdracht uit:

$ mkdir -pv apt-ppa-repo/playbooks

Nadat de projectdirectory is gemaakt, navigeert u als volgt naar de projectdirectory:

$ cd apt-ppa-repo

Maak een gastheren inventarisbestand, als volgt:

$ nano-hosts

Voeg de host-IP- of DNS-naam toe (vm7.nodekite.com en vm8.nodekite.com, in mijn geval) van uw Ubuntu-hosts in het inventarisbestand.

Als u klaar bent, slaat u het bestand op door op . te drukken + X, gevolgd door Y en .

Maak als volgt een Ansible-configuratiebestand in de projectdirectory:

$ nano mogelijk.cfg

Typ de volgende regels in de weerbaar.cfg het dossier:

[standaard]
inventaris           = hosts
host_key_checking   = False

Als u klaar bent, slaat u het bestand op door op . te drukken + X, gevolgd door Y en .

Op dit punt zou de projectdirectory er als volgt uit moeten zien:

$ boom

Zoals je kunt zien, zijn de Ansible-hosts toegankelijk. We kunnen dus doorgaan naar het volgende gedeelte van dit artikel.

$ ansible all -u ansible -m ping

Pakketopslagplaatsen toevoegen

In deze sectie laat ik je zien hoe je een pakketrepository in Ubuntu toevoegt met Ansible.

Maak eerst een nieuw playbook met de naam add_repo.yaml in de draaiboeken/ directory, als volgt:

$ nano playbooks/add_repo.yaml

Typ de volgende regels in de add_repo.yaml het dossier:

- hosts: alle
gebruiker: ansible
worden: True
taken:
- naam: zorg ervoor dat de universe-repository is ingeschakeld
apt_repository:
repo: deb http://archive.ubuntu.com/ubuntu brandpuntsuniversum
staat: aanwezig
update_cache: True

Als u klaar bent, slaat u het bestand op door op . te drukken + X, gevolgd door Y en .

Hier de repo optie van de apt_repository module wordt gebruikt om de APT-pakketrepositoryregel te specificeren (in mijn geval my, deb http://archief.ubuntu.com/ubuntu brandpuntsuniversum) van de pakketrepository die u wilt toevoegen (in mijn geval de Ubuntu 20.04 LTS officieel universum opslagplaats).

Voor meer informatie over het formaat van de APT-pakketrepositoryregel, lees de: Configuratiebestanden Ubuntu-pakketrepository sectie van het artikel APT Package Manager gebruiken in Ubuntu 20.04 LTS.

Aangezien ik hier een nieuwe pakketrepository aan het toevoegen ben, is de staat is Cadeau.

De update_cache optie kan ofwel zijn waar/Ja of niet waar/Nee.

Als de update_cache ingesteld op waar, Ansible zal de cache van de pakketrepository van APT updaten na het toevoegen van de pakketrepository.

Als de update_cache ingesteld op niet waar, Ansible zal de cache van de APT-pakketrepository niet bijwerken.

Hier wil ik dat de APT-pakketrepository wordt bijgewerkt zodra de nieuwe pakketrepository is toegevoegd. Dus ik heb de update_cache naar waar.

Voer nu de add_repo.yaml draaiboek, als volgt:

$ ansible-playbook playbooks/add_repo.yaml

Zoals je kunt zien, is het playbook succesvol uitgevoerd.

Om te bevestigen dat de pakketrepository (in mijn geval de Ubuntu 20.04 LTS universum repository) is toegevoegd, voert u de volgende opdracht uit:

$ grep --color -R 'http://archief.ubuntu.com' /etc/apt/sources.lijst
/etc/apt/bronnen.lijst.d/*.lijst

Zoals u kunt zien, is er een nieuw bestand aangemaakt in de /etc/apt/bronnen.lijst.d/ directory (1) en de Ubuntu 20.04 LTS universum pakketrepository is toegevoegd (2).

Standaard genereert Ansible automatisch de a .lijst bestand in de /etc/apt/bronnen.lijst.d/ directory, afhankelijk van de APT-repositoryregel.

Als u een specifieke bestandsnaam wilt kiezen (i.e. ubuntu-universum.lijst) voor uw repository, kunt u een bestandsnaam specificeren met de bestandsnaam optie van de apt_repository module in je add_repo.yaml playbook, zoals weergegeven in de onderstaande schermafbeelding.

Voer nu de add_repo.yaml weer speelboek.

$ ansible-playbook playbooks/add_repo.yaml

Zoals je kunt zien, is de bestandsnaam dezelfde naam die ik heb opgegeven.

$ grep --color -R 'http://archief.ubuntu.com' /etc/apt/sources.lijst
/etc/apt/bronnen.lijst.d/*.lijst

Pakketopslagplaatsen verwijderen

In dit gedeelte laat ik u zien hoe u een bestaande pakketrepository van uw Ubuntu-hosts verwijdert met Ansible.

Het draaiboek voor het verwijderen van een pakketrepository is bijna hetzelfde als het toevoegen van een pakketrepository. U kunt dus gewoon de . kopiëren add_repo.yaml playbook-bestand en pas het een beetje aan. Dit is heel eenvoudig te doen.

Kopieer eerst de add_repo.yaml bestand naar remove_repo.yaml, als volgt:

$ cp -v playbooks/add_repo.yaml playbooks/remove_repo.yaml

Bewerk de remove_repo.yaml draaiboek, als volgt:

$ nano playbooks/remove_repo.yaml

Verandering staat: aanwezig naar staat: afwezig, zoals aangegeven in de onderstaande schermafbeelding. Dit is de enige wijziging die u hoeft aan te brengen.

Als u klaar bent, slaat u het bestand op door op . te drukken + X, gevolgd door Y en .

Voer de ... uit remove_repo.yaml draaiboek, als volgt:

$ ansible-playbook playbooks/remove_repo.yaml

Voer vervolgens de volgende opdracht uit om te controleren of de pakketrepository die u wilt verwijderen, daadwerkelijk is verwijderd:.

$ grep --color -R 'http://archief.ubuntu.com' /etc/apt/sources.lijst
/etc/apt/bronnen.lijst.d/*.lijst

Zoals je kunt zien, is de Ubuntu 20.04 LTS officieel universum pakketrepository die ik eerder heb toegevoegd, is verwijderd.

OPMERKING: Negeer de foutmelding. Dit bericht betekent alleen dat de /etc/apt/bronnen.lijst.d/ map is leeg. Als u de foutmelding wilt verwijderen, voegt u gewoon een 2>/dev/null aan het einde van de opdracht, als volgt:. De fout zou verdwenen moeten zijn na het invoeren van deze opdracht.

$ grep --color -R 'http://archief.ubuntu.com' /etc/apt/sources.lijst
/etc/apt/bronnen.lijst.d/*.lijst 2>/dev/null

PPA's toevoegen

In dit gedeelte laat ik u zien hoe u een PPA toevoegt aan uw Ubuntu-hosts met Ansible.

ik zal de . toevoegen osomon/nodejs-10.19-focaal Knooppunt.js 10.19 PPA voor Ubuntu 20.04 LTS in mijn voorbeeld.

Maak eerst een nieuw playbook add_ppa.yaml, als volgt:

$ nano playbooks/add_ppa.yaml

Voeg de volgende regels toe aan je add_ppa.yaml Speelboek:

- hosts: alle
gebruiker: ansible
worden: True
taken:
- naam: Knooppunt toevoegen.js 10.19 PPA
apt_repository:
repo: ppa:osomon/nodejs-10.19-focaal
staat: aanwezig
update_cache: True
valid_certs: False

Als u klaar bent, slaat u de add_ppa.yaml playbook door op te drukken + X, gevolgd door Y en .

Hier de repo optie van de apt_repository module wordt gebruikt om de PPA . toe te voegen osomon/nodejs-10.19-focaal (1).

Voeg zeker toe pp: voor de PPA-naam, i.e. ppa:osomon/nodejs-10.19-focaal.

De meeste PPA's gebruiken zelfondertekende certificaten, dus Ansible kan ze niet voor u verifiëren en er kunnen fouten optreden wanneer u het playbook uitvoert.

U kunt instellen valid_certs naar niet waar certificaatvalidatie overslaan voor de PPA die u toevoegt (2). Dit is wat ik heb gedaan in het voorbeeld in dit artikel.

OPMERKING: U kunt ook instellen valid_certs naar niet waar om certificeringsvalidatie over te slaan bij het toevoegen van pakketrepository's van derden.

Voer de ... uit add_ppa.yaml draaiboek, als volgt:

$ ansible-playbook playbooks/add_ppa.yaml

Zoals je kunt zien, een nieuwe .lijst bestand voor de PPA osomon/nodejs-10.19-focaal is gemaakt in de /etc/apt/bronnen.lijst.d/ adresboek (1).

Door te kijken naar de inhoud van de ppa_osomon_nodejs_10_19_focal_focal.lijst bestand kan ik bevestigen dat de PPA is toegevoegd (2).

$ boom /etc/apt/sources.lijst.d/
$ cat /etc/apt/sources.lijst.d/ppa_osomon_nodejs_10_19_focal_xenial.lijst

PPA's verwijderen

U kunt PPA's op dezelfde manier verwijderen als we pakketrepository's in het eerdere gedeelte van dit artikel hebben verwijderd.

Kopieer gewoon de app_ppa.yaml draaiboek naar remove_ppa.yaml, als volgt:

$ cp -v playbooks/add_repo.yaml playbooks/remove_repo.yaml

Open nu de remove_ppa.yaml draaiboek, als volgt:

$ nano playbooks/remove_ppa.yaml

Verander vervolgens de regel staat: aanwezig naar staat: afwezig, zoals aangegeven in de onderstaande schermafbeelding.

Als u klaar bent, slaat u de remove_ppa.yaml playbook door op te drukken + X, gevolgd door Y en .

Voer de ... uit remove_ppa.yaml draaiboek, als volgt:

$ ansible-playbook playbooks/add_ppa.yaml

Zoals je kunt zien, is de ppa_osomon_nodejs_10_19_focal_focal.lijst bestand voor de osomon/nodejs-10.19-focaal PPA is niet langer beschikbaar in de /etc/apt/bronnen.lijst.d/ map. Dus de PPA osomon/nodejs-10.19-focaal is verwijderd.

$ boom /etc/apt/sources.lijst.d/

PPA-codenaam wijzigen

Soms ondersteunt de PPA die u probeert toe te voegen aan uw Ubuntu-host de versie van Ubuntu die u gebruikt niet. In dat geval moet u de codenaam van de Ubuntu-versie handmatig opgeven tijdens het toevoegen van de PPA.

Stel dat u Ubuntu 20 . gebruikt.04 met codenaam brandpunt en u probeert de PPA toe te voegen xyz, maar de PPA xyz ondersteunt alleen Ubuntu 16.04 LTS-codenaam xenial. Als u de PPA probeert toe te voegen xyz, u krijgt een foutmelding, omdat de PPA geen pakket heeft voor Ubuntu 20.04 codenaam brandpunt. Maar als u de Ubuntu 16 . specificeert.04 LTS-codenaam xenial tijdens het toevoegen van de PPA ontvangt u geen foutmelding. Mogelijk kunt u op deze manier uw gewenste pakket van de PPA installeren, zelfs als het de expliciete versie van Ubuntu die u momenteel gebruikt niet ondersteunt.

Laten we een voorbeeld zien.

Kopieer eerst de add_ppa.yaml playbook-bestand naar change_ppa_codename.yaml, als volgt:

$ cp -v playbooks/add_ppa.yaml playbooks/change_ppa_codename.yaml

Open vervolgens de change_ppa_codename.yaml bestand, als volgt:

$ nano playbooks/change_ppa_codename.yaml

Hier hoef je alleen maar de . toe te voegen codenaam optie met uw gewenste Ubuntu-codenaam (i.e. codenaam: xenial), zoals aangegeven in de onderstaande schermafbeelding.

Als u klaar bent, slaat u de change_ppa_codename.yaml bestand door op te drukken + X, gevolgd door Y en .

Voer de ... uit change_ppa_codename.yaml draaiboek, als volgt:

$ ansible-playbook playbooks/change_ppa_codename.yaml

OPMERKING: Ik krijg een foutmelding omdat de PPA die ik hier heb toegevoegd alleen Ubuntu 20 ondersteunt.04 LTS. Je kunt dit bericht gewoon negeren.

Zoals u kunt zien, is de PPA toegevoegd en de Ubuntu-codenaam xenial staat in de regel van de APT-pakketrepository.

Conclusie

Dit artikel liet u zien hoe u Ubuntu-pakketrepository's en PPA's kunt beheren (toevoegen/verwijderen) met Ansible.

De Ansible apt_repository module wordt gebruikt om Ubuntu-pakketrepository's en PPA's te beheren. In dit artikel worden alle belangrijke opties van de apt_repository module van Ansible.

Raadpleeg voor meer informatie de officiële Ansible-documentatiepagina van apt_repositorytory.

Gratis en open source game-engines voor het ontwikkelen van Linux-games
Dit artikel behandelt een lijst met gratis en open source game-engines die kunnen worden gebruikt voor het ontwikkelen van 2D- en 3D-games op Linux. E...
Shadow of the Tomb Raider voor Linux-zelfstudie
Shadow of the Tomb Raider is de twaalfde toevoeging aan de Tomb Raider-serie - een actie-avonturengame-franchise gemaakt door Eidos Montreal. De game ...
Hoe FPS te verhogen in Linux?
FPS staat voor Beelden per seconde. De taak van FPS is om de framesnelheid te meten bij het afspelen van video's of speluitvoeringen. In eenvoudige wo...