0

Ich habe jenkins build und ich versuche eine ansible Playbook-Datei für einen s3-Upload aufzurufen. Wenn ich ein Post-Build-Skript zum Aufrufen einer Ansible-Playbook-Datei ausführe, beende ich mit einem Fehler unterhalb des Fehlers. Fehler = 2, Keine solche Datei oder das VerzeichnisInvisible playbook in Jenkins aufrufen

Screenshot unten ist ansible Post-Build-Skript-Konfiguration: Kann nicht Programm "ansible-Textbuch" (im Verzeichnis "/ var/jenkins_home/Arbeitsbereich/mybuild") ausgeführt werden. enter image description here

FYI: Es gibt eine Datei (ansibledemo.yml) in meinem Build-Ordner. Ich habe versucht, absoluten Pfad (/var/jenkins_home/workspace/mybuild/ansibledemo.yml) zu geben. Immer noch nicht gehen.

Wenn ich versuche, ansible-Textbuch läuft myplaybook.yml direkt in jenkins Bild (Terminal) Ich beende mit bash up: ansible-Textbuch: Befehl nicht gefunden

Als ich ansible versucht, die Installation in meinem Jenkins Server konnte ich keine Installationsbefehle ausführen. Bitte sehen Sie den folgenden Screenshot. enter image description here

+1

ich vermute, es ist Problem mit Suchpfad selbst ansible-Textbuch ... –

+0

können Sie $ {} ARBEITSBEREICH /mybuild/ansibledemo.yml oder $ {} ARBEITSBEREICH versuchen /ansibledemo.yml –

+0

@ArbabNazar habe ich meine Frage bearbeitet . Auch wenn ich die Playbook-Datei direkt in jenkins cmd starte, bekomme ich Fehler. –

Antwort

0

ansible ist das Gerät nicht auf dem Jenkins Maschine, müssen Sie zuerst die ansible auf der jenkins Maschine installieren:

auf Ubuntu/Debian:

sudo apt-add-repository ppa:ansible/ansible 
sudo apt-get update 
sudo apt-get install ansible 

auf CentOS/RedHat :

sudo yum install epel-release 
sudo yum install ansible 

Danach können Sie das Ansible-Playbook ausführen.

+0

Ich habe meine Frage aktualisiert. Immer wenn ich versuche, auf meinem jenkins-Server zu installieren, bekomme ich den Fehler ** Befehl nicht gefunden **. –

+0

jenkins ist kein sudo-Benutzer, Sie müssen sich als root anmelden oder der Benutzer mit sudo-Rechten –

+0

Ich führe jenkins im Docker-Container aus. Ist das der Grund, warum ich keine Befehle ausführen konnte? Wenn ja/nein, kannst du hier ein paar Gedanken zeigen? –

0

Sie können versuchen, mit pip Version als Alternative zu installieren und versuchen, finden Sie die folgenden Schritte aus,

$ virtualenv venv 
$ source venv/bin/activate 
$ pip install ansible-container[docker,openshift] 

können Sie weitere Optionen in docs zu installieren: https://docs.ansible.com/ansible-container/installation.html

Aber immer ist es eine gute option, um einen separaten vm/docker wie "ansible-controller" zu behalten und diesen als sklaven zu jenkins zu benutzen, damit sie keine anssible plugins in ansible benötigen. Und jenkins ist immer stabil ohne viel Last

0
  1. Laden Sie Paketinformationen von den konfigurierten Quellen herunter.

    # apt update

  2. ansible Installieren

    # apt install ansible

Das ist es.

Wenn Sie offizielle jenkins Container (basierend auf Debian) als Repo mit Ansible Build bereits ausführen und Sie brauchen nicht "apt-add-Repository". Aber Sie könnten apt-add-repository installieren, indem Sie software-properties-common zur weiteren Verwendung installieren.

dpkg -S apt-add-repository sagt, dass dieses Paket Software-Eigenschaften-common gehört.

Fehler erscheint, weil der Autor des Containers immer versucht, es so leicht wie möglich zu machen und Paketinformationen zu entfernen.

Sie benötigen kein sudo, weil Sie standardmäßig root im Container werden. Sie werden nur dann zu einem anderen Benutzer, wenn Sie dies absichtlich erwähnen.

Bitte fügen Sie Informationen, die Sie in Container arbeiten, zu Ihrer Frage hinzu.