Bei fast jeder größeren Automatisierung ist es früher oder später notwendig Informationen von einem Webserver abzuholen. Egal ob man Installationspakete herunterladen will oder eine Verbindung zu einem Repository aufbaut. Dafür gibt es in Ansible das Modul get_url. Dieses wollen wir uns heute etwas genauer anschaue.
Im ersten Teile werde ich kurz zeigen wie man get_url in Ansible verwendet. Im zweiten Teil schauen wir uns an, welche alternative wir haben um auf https Seiten zuzugreifen, da dies im Moment mit get_url Probleme macht.
Datei herunterladen mit get_url
Als Beispiel für die Verwendung von get_url will ich einen Datei herunter laden. In meine Fall versuchen wir einfach mal die Startseite von Google herunter zu laden
Dafür braucht man als erste eine entsprechende Ansible Rolle. Ich lege dafür eine Rolle mit dem Namen Download an und füge den Ordner tasks und die Datei main.yml hinzu. Das ganze sieht dann so aus:
1 2 3 4 5 | tree . └── download └── tasks └── main.yml |
Nun öffne ich die Datei main.yml mit einem Editor meiner Wahl. Anschließend schreibe ich den folgenden Inhalt für Ansible get_url in die Datei:
1 2 3 4 | - name: get_url test get_url: url: http://www.google.de dest: /tmp/ |
Um zu testen was nun passiert, weise ich die Ansible Rolle meinem Testhost zu. Wichtig hier bei ist, dass der Zielhost via ssh mit dem User root erreichbar ist. Hier einmal meite site.yml udn meine hosts Datei.
site.yml
1 2 3 4 5 | - name: download hosts: download remote_user: root roles: - download |
hosts
1 2 | [download] 192.168.10.2 |
Das ausführen des Ansible Playbooks sieht dann wie folgt aus:
1 2 3 4 5 6 7 8 9 10 11 12 | ansible-playbook site.yml -i hosts PLAY [download] *********************************************************************************** TASK [Gathering Facts] **************************************************************************** ok: [192.168.10.2] TASK [download : get_url test] ******************************************************************** changed: [192.168.10.2] PLAY RECAP **************************************************************************************** 192.168.10.2 : ok=2 changed=1 unreachable=0 failed=0 |
Wenn wir uns nun auf das Zielsystem verbinden, sehen wir im /tmp Verzeichnis eine Datei index.html. Dabei handelt es sich um die Startseite von Google.
1 2 | root@raspberrypi:/tmp# ls ansible_dmqtiX index.html |
Das ganze kann genauso mit SSL Verschlüsselten URLs durchgeführt werden.
Schreibe einen Kommentar