[gelöst] ISPC3 autoinstall per ansible and autoinstall.ini

rootfuchs

Member
Hi zusammen,

ich arbeite gerade an ansible (Playbooks/Rollen) um Server automatisch mit ISPC3 zu provisionieren bzw. in Master-Slave beziehungne zu setzen. Dank der autoinstall.ini - Datei geht das auch einiger maßen. Leider ist aber nicht jeder Server nach dem 'The Perfect Server' HowTos eingerichtet bzw. hat auch nicht alles an Software installiert. Manche sind im Verbund eben nur Webserver oder DB-Server oder Mailserver.

Ich bekomme dann während der Installation weitere Eingabeaufforderungen, die ich natürlich bei einer Provisionierung mit ansible nicht brauchen kann:
Code:
[WARN] autodetect for Jailkit failed
Force configure Jailkit (y,n) [n]:

Skipping Jailkit

[WARN] autodetect for PowerDNS failed
Force configure PowerDNS (y,n) [n]:

Skipping PowerDNS

[WARN] autodetect for BIND failed
Force configure BIND (y,n) [n]:

Skipping BIND

[WARN] autodetect for MyDNS failed
Force configure MyDNS (y,n) [n]:

Skipping MyDNS

Gibt es eine Möglichkeit diese Meldungen ebenfalls zu unterdrücken? Die 'svc_detect_' Einstellungen scheinen nichts daran zu ändern.
Oder muss ich immer zwingend das Komplettpacket installieren um die Meldungen zu vermeiden?
 

Till

Administrator
Installierst Du denn im expert modus und hast dabei die entsprechenden Sektionen mit 'n' deaktiviert?
 

rootfuchs

Member
Ja ich bin im export Modus.
Meine autoinstall.ini bzw. deren YAML Entsprechung sieht derzeit so aus:

Code:
---
_webserver: false

ispconfig_source:
  repo: 'https://git.ispconfig.org/ispconfig/ispconfig3.git'
  dest: '/opt/ispconfig3_install'
  version: 'master'
  owner: root
  group: root


default_ispconfig_autoinstall_ini:
  install:
    language: 'en'
    install_mode: 'expert'
    hostname: '{{ inventory_hostname }}'
    mysql_hostname: 'localhost'
    mysql_port: 3306
    mysql_root_user: 'root'
    # WARNING: the auto generated password is not secure. In productive enviroments use an custom password!
    mysql_root_password: "{{ ansible_machine_id + '/' + inventory_hostname | hash('sha1') | truncate(24, True, '') }}"
    mysql_database: 'dbispconfig'
    mysql_charset: 'utf8'
    http_server: 'apache'
    ispconfig_port: 8080
    ispconfig_use_ssl: 'y'
    ispconfig_admin_password: 'admin'
  ssl_cert:
    ssl_cert_country: 'AU'
    ssl_cert_state: 'Some-State'
    ssl_cert_locality: 'Chicago'
    ssl_cert_organisation: 'Internet Widgits Pty Ltd'
    ssl_cert_organisation_unit: 'IT department'
    ssl_cert_common_name: '{{ inventory_hostname }}'
    ssl_cert_email: 'hostmaster@{{ inventory_hostname }}'
  expert:
    mysql_ispconfig_user: 'ispconfig'
    # WARNING: the auto generated password is not secure. In productive enviroments use an custom password!
    mysql_ispconfig_password: "{{ ansible_machine_id + '/ispconfig' | hash('sha1') | truncate(24, True, '') }}"
    join_multiserver_setup: 'n'
    mysql_master_hostname: 'master.example.com'
    mysql_master_root_user: 'root'
    mysql_master_root_password: 'ispconfig'
    mysql_master_database: 'dbispconfig'
    configure_mail: 'n'
    configure_jailkit: 'n'
    configure_ftp: 'n'
    configure_dns: 'n'
    configure_firewall: 'n'
    # DEFAULT VALUE. DO NOT CHANGE! Will be overridden by the recognized '_webserver' variable.
    configure_apache: 'n'
    # DEFAULT VALUE. DO NOT CHANGE! Will be overridden by the recognized '_webserver' variable.
    configure_nginx: 'n'
    configure_firewall: 'n'
    install_ispconfig_web_interface: 'y'
  update:
    do_backup: 'yes'
    # WARNING: the auto generated password is not secure. In productive enviroments use an custom password!
    mysql_root_password: "{{ ansible_machine_id + '/' + inventory_hostname | hash('sha1') | truncate(24, True, '') }}"
    mysql_master_hostname: 'master.example.com'
    mysql_master_root_user: 'root'
    mysql_master_root_password: 'ispconfig'
    mysql_master_database: 'dbispconfig'
    reconfigure_permissions_in_master_database: 'no'
    reconfigure_services: 'yes'
    ispconfig_port: 8080
    create_new_ispconfig_ssl_cert: 'no'
    reconfigure_crontab: 'yes'
    svc_detect_change_mail_server: 'yes'
    svc_detect_change_web_server: 'yes'
    svc_detect_change_dns_server: 'yes'
    svc_detect_change_xmpp_server: 'yes'
    svc_detect_change_firewall_server: 'yes'
    svc_detect_change_vserver_server: 'yes'
    svc_detect_change_db_server: 'yes'

Die Variablen für configure_webserver werden später automatisch gesetzt. Alles andere ist in dem Fall für eine eine Entwicklungs-VM aus.
Er soll im 1. Schritt nur den Webserver allein einrichten. Alles andere kommt dann nach und nach dazu.
Derzeit steigt er aber dennoch mit den Nachfragen aus. Selbst wenn ich die 'svc_detect_change_XYZ' Werte auf 'no' stelle.

Der Aufruf des Scriptes durch ansible-command sieht dann so aus: 'php install.php --autoinstall=autoinstall.ini'
 

rootfuchs

Member
Danke Till. Hat auch funktioniert soweit. Die einzige Abfrage die jetzt noch aufpoppt ist die nach dem Webserver selbst.

Code:
The Web Server option has to be enabled when you want run a web server or when this node shall host the ISPConfig interface.
Configure Web Server (y,n) [y]:

Alles andere scheint korrekt durch zu laufen.
 

rootfuchs

Member
BTW, Gibt eine Möglichkeit dem autoinstall bzw. ISPC gleich seine entsprechenden SSL-Certs mit zu geben anstelle des Snakeoil das die Installation generiert? Ich hab das momentan abgefangen in den ich nach der Installation die entsprechenden Dateien anpasse, aber das muss dann bei jedem ispc_update wiederholt werden.
 

Till

Administrator
Dann prüfe mal ob Du auch wirklich die Frage 'configure_webserver' mit y oder n in der autoinstall beantwortet hast.
Dass der Satz "
The Web Server option has to be enabled when you want run a web server or when this node shall host the ISPConfig interface." erscheint ist richtig, aber die Frage danach wird automatisch per autoinstall beantwortet wenn Du die richtige option gesetzt hast.

BTW, Gibt eine Möglichkeit dem autoinstall bzw. ISPC gleich seine entsprechenden SSL-Certs mit zu geben anstelle des Snakeoil das die Installation generiert? Ich hab das momentan abgefangen in den ich nach der Installation die entsprechenden Dateien anpasse, aber das muss dann bei jedem ispc_update wiederholt werden.

Dann hast Du einen Fehler in der Anpassung gemacht. Vermutlich hast Du config Dateien editiert anstatt das Cert selbst zu tauschen.
 

rootfuchs

Member
Dann hast Du einen Fehler in der Anpassung gemacht. Vermutlich hast Du config Dateien editiert anstatt das Cert selbst zu tauschen.
Korrekt. Ok stimmt danke. Ich kann ja schlicht die Cert-Files tauschen bzw. Symlinken unter anderem Namen.

Dann prüfe mal ob Du auch wirklich die Frage 'configure_webserver' mit y oder n in der autoinstall beantwortet hast.

:) Danke für den Hinweis. Mir war nicht klar das die Option in der Form existiert. Sie steht so auch nicht in den autoinstall-Samples.
Das es die Option selbst überhaupt gibt hab ich erst nach ner Suche aufgrund Deines Hinweises kapiert ;)
Ich meine oben mit 'configure_webserver' eigentlich einen Platzhalter für 'configure_apache' bzw. 'configure_nginx'. Die wurden gesetzt.
Ich passe die Rolle entsprechend an.

Hier mal die - bisherige ini wie sie erzeugt wird:
(Die Werte werden leider in den Blöcken gemischt. Offenbar YAML/Ansible Problem das aber sonst keine Folgen zeitigt. )
Code:
; Ansible managed

[ssl_cert]
ssl_cert_country=AU
ssl_cert_state=Some-State
ssl_cert_locality=Chicago
ssl_cert_organisation=Internet Widgits Pty Ltd
ssl_cert_organisation_unit=IT department
ssl_cert_email=hostmaster@devbox.lemp
ssl_cert_common_name=devbox.lemp
[install]
install_mode=expert
mysql_root_user=root
language=de
mysql_root_password=root
ispconfig_admin_password=admin
hostname=devbox.lemp
ispconfig_port=8080
mysql_database=dbispconfig
http_server=nginx
mysql_charset=utf8
ispconfig_use_ssl=y
mysql_port=3306
mysql_hostname=localhost
[expert]
mysql_master_database=dbispconfig
configure_mail=n
configure_nginx=y
install_ispconfig_web_interface=y
configure_dns=n
mysql_master_root_user=root
configure_apache=n
mysql_master_root_password=ispconfig
mysql_ispconfig_user=ispconfig_10.10.10.102
join_multiserver_setup=n
mysql_master_hostname=master.example.com
mysql_ispconfig_password=96fbfbfd207a4d85a4ce83f4d75afdefc452fbeb41e9b7cad6ac3bea
configure_jailkit=n
configure_ftp=n
configure_firewall=n
[update]
mysql_master_database=dbispconfig
svc_detect_change_db_server=yes
svc_detect_change_web_server=yes
svc_detect_change_dns_server=yes
do_backup=yes
mysql_root_password=96fbfbfd207a4d85a4ce83f4d75afdef/635253ceb29003990f44eaa3
create_new_ispconfig_ssl_cert=no
mysql_master_root_user=root
reconfigure_crontab=yes
ispconfig_port=8080
reconfigure_permissions_in_master_database=no
mysql_master_root_password=ispconfig
svc_detect_change_firewall_server=yes
svc_detect_change_xmpp_server=yes
mysql_master_hostname=master.example.com
svc_detect_change_mail_server=yes
reconfigure_services=yes
svc_detect_change_vserver_server=yes
 

Werbung

Top