2016-05-06 4 views
1

Ich bin neu in Puppet und schreibe mein erstes Manifest, aber es gibt mir einen Fehler immer wenn ein Agent versucht, mit dem Master zu kommunizieren.Puppet Manifest: Installieren Sie MySQL und PHP

Konnte es nicht richtig machen, brauche etwas Anleitung. Mein OS ist CentOS 7.

Mein init.pp:

package { 'mysql': 
      ensure => 'present', 
} 

package { 'php': 
      ensure => 'present', 
} 

service { 'mysql': 
      ensure => 'running', 
} 

service { 'php': 
      ensure => 'running', 
} 
+1

Was ist der Fehler? und welche Befehle benutzen Sie, um Puppet-Agent zu betreiben? – RaviTezu

+0

Die Antwort, die ich Ihnen unten gegeben habe, ist sehr allgemein gehalten. Bei Stack Overflow sollte Ihre Antwort spezifischer sein. Wie RaviTezu sagte, solltest du zumindest hinzufügen, welchen Fehler du erlangst und wie du Marionette spielst. – Mifeet

Antwort

2

Zunächst müssen Sie PHP und MySQL-Pakete mit dem richtigen Namen installieren. In Ihrem Fall ist es mysql-server, php und php-mysql (oder php5 und php5-mysql, z.B.).

Eine andere Sache ist, dass Sie richtige Dienste mit korrekten Namen starten müssen. Es sollte mysqld für die Datenbank sein. Der Dienst, den Sie für PHP starten, hängt davon ab, wie Sie ihn ausführen möchten - z. Um PHP in Apache auszuführen, müssen Sie möglicherweise apache2 starten.

Die dritte Sache, die mit Ihrem Beispiel falsch ist, ist, dass Sie sicherstellen müssen, dass die Dienste erst gestartet werden, nachdem die jeweiligen Pakete installiert wurden. Sie können erreichen dies mit require, z.B .:

service { "mysqld": 
    ensure => "running", 
    enable => "true", 
    require => Package["mysql-server"], 
} 

Schließlich gibt es mehr zu der Installation von MySQL und PHP als nur Pakete und laufenden Dienste zu installieren. Sie müssen Konfigurationsdateien usw. erstellen. Ich würde Ihnen empfehlen, vorhandene Module zu verwenden, die für diesen Zweck geschrieben wurden. Für MySQL gibt es z. B. puppetlabs-mysql, siehe Anwendungsbeispiele dort; Für PHP auf Apache, überprüfen Sie puppetlabs-apache.

Wenn Sie selbst Dinge tun wollen, können Sie auch this tutorial für Ubuntu auschecken. Hier ist ein Auszug aus dem Tutorial:

Package { ensure => "installed" } 

package { "apache2": } 
package { "apache2.2-common": } 
package { "php5": } 
package { "php5-mysql": } 
package { "mysql-server": } 

exec { "mysqlpasswd": 
    command => "/usr/bin/mysqladmin -u root password ChangeThis1", 
    notify => [Service["mysql"], Service["apache2"]], 
    require => [Package["mysql-server"], Package["apache2"]], 
} 

service { "apache2": 
    ensure => "running", 
    enable => "true", 
    require => Package["apache2"], 
} 

service { "mysql": 
    ensure => "running", 
    enable => "true", 
    require => Package["mysql-server"], 
}