Puppet не стартира MySQL

Улеснявам живота си (надявам се), като се науча да използвам кукла и скитник. Вече знам как да работя с Vagrant, но искам да направя конфигурация, която да има всичко готово за стартиране. Затова реших да използвам Puppet. Използвах урока на http://jamesmcfadden.co.uk/using-vagrant-and-puppet-to-build-a-php-nginx-and-mysql-environment/, но изглежда не мога да разбера как да започна MySQL.

Изпълнявам Ubuntu 14.04LTS, моят init.pp за MySQL е

    class mysql {

  # Install mysql
  package { ['mysql-server']:
    ensure => present,
    require => Exec['apt-get update'],
  }

  # Run mysql
  service { 'mysql':
    ensure  => running,
    require => Package['mysql-server'],
  }

  # Use a custom mysql configuration file
  file { '/etc/mysql/my.cnf':
    source  => 'puppet:///modules/mysql/my.cnf',
    require => Package['mysql-server'],
    notify  => Service['mysql'],
  }

  # We set the root password here
  exec { 'set-mysql-password':
    unless  => 'mysqladmin -uroot -proot status',
    command => "mysqladmin -uroot password a9120ed2b58af37862a83f5b9f850819ed08b2a9",
    path    => ['/bin', '/usr/bin'],
    require => Service['mysql'];
  }
}

Но това ми дава грешка, че mysql не е намерен.

err: /Stage[main]/Mysql/Service[mysql]/ensure: change from stopped to running fa
iled: Could not start Service[mysql]: Execution of '/sbin/start mysql' returned
1:  at /tmp/vagrant-puppet-2/modules-0/mysql/manifests/init.pp:13

И като го промените на mysqld (обърнете внимание на 'd'), това съобщение изчезна, но има проблеми, идващи със зависимостите, които не могат да бъдат намерени, за да се провери дали mysql работи (след промяната им на 'Service['mysqld']' :

err: /Stage[main]/Mysql/Service[mysqld]: Could not evaluate: Could not find init
 script or upstart conf file for 'mysqld'

Грешно ли го правя?


person Sgarz    schedule 19.09.2014    source източник
comment
Очевидно mysql без крайния d е правилен, но трябва да проучите причината за неуспешния стартов скрипт. Опитайте syslog или всякакви специални mysql регистрационни файлове, които може да накарате услугата да напише.   -  person Felix Frank    schedule 20.09.2014


Отговори (2)


вашият скрипт има следните редове:

изискват => Exec['apt-get update'],

но не дефинирайте „Exec“. Добавете следните редове:

exec { 'apt-get update':

command => 'sudo apt-get update',

path    => ['/bin', '/usr/bin'],

}

След това трябва да работи добре.

person piasxp    schedule 13.09.2019

Не се опитвайте да напишете свой собствен MySQL модул. Моля, използвайте официално поддържан модул puppet MySQL. За да го инсталирате, обадете се:

puppet module install puppetlabs-mysql

По принцип, ако искате да инсталирате/управлявате някое приложение от марионетка, първо проверете дали в куклен ковачница съществува специален модул.

person kkamilpl    schedule 11.01.2015