Zu jedem guten Webserver gehört auch die Installation von php. Genau für diesen Zweck erstellen wir hier heute eine entsprechende Rolle zu Ergänzung unseres Webservers. Also Voraussetzung brauchen wir einen funktionsfähige Ansible Installation mit einer entsprechend konfigurierten ssh Verbindung zum Zielsystem.
Von Vorteil ist es, wenn bereits die httpd Rolle implementiert ist, um php zu testen. Dies ist aber nicht zwingend erforderlich.
Inhaltsverzeichnis
Erstellen der tasks/main.yml für die php Rolle
Die Installation von php über Ansible ist verhältnismäßig einfach. Die Rolle besteht lediglich aus zwei Blöcken.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | - set_fact: php_packages: - php-fpm - php-curl - php-gd - php-gmp - php-json - php-ldap - php-xmlrpc - php-xsl - php-imap - php-intl - php-mcrypt - php-mysqlnd |
Im ersten Block setzte wir mit set_facts die Pakete für die Installation. Dadurch das wir das ganze mit set facts machen, haben wir die Möglichkeit, zu einem späteren Zeitpunkt ein entsprechendes Set für zb. php7 Pakete zu hinterlegen.
1 2 3 4 5 | - name: php | install yum: name: "{{ item }}" with_items: "{{ php_packages }}" when: ansible_pkg_mgr == "yum" |
Im zweiten Block wird wie bereits in den vorangegangenen Rollen eine entsprechende Paketliste dem yum Modul übergeben. Die einzige Besonderheit hier ist, dass wir als Pakete die zuvorgelegten Facts übergeben.
Testen der Ansible php Rolle
Zum Testen von php legen wir in der site.yml einen entsprechenden Bereich an:
1 2 3 4 | - name: php hosts: php roles: - php |
Auf diesen Bereich verweisen wir entsprechend in der hosts Datei.
1 2 | [php] 192.168.10.90 ansible_user=root |
Nach der Anpassung der Dateien können wir einen entsprechenden Ansible run starten. Das ganze sieht dann wie folgt aus.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | ansible-playbook -i hosts site.yml PLAY [php] ********************************************************************** TASK [Gathering Facts] ********************************************************** ok: [192.168.10.90] TASK [php : set_fact] *********************************************************** ok: [192.168.10.90] TASK [php : php | install] ****************************************************** changed: [192.168.10.90] => (item=[u'php-fpm', u'php-curl', u'php-gd', u'php-gmp', u'php-json', u'php-ldap', u'php-xmlrpc', u'php-xsl', u'php-imap', u'php-intl', u'php-mcrypt', u'php-mysqlnd']) PLAY RECAP ********************************************************************** 192.168.10.90 : ok=3 changed=1 unreachable=0 failed=0 |
Video
Diese und weitere Ansible Rollen sind auch in meinem GitHub Repository ansible Rolle zu finden.
Schreibe einen Kommentar