Переменная кукольного элемента в кавычках

Как я могу сделать последние переменные exec для анализа ресурса?

В настоящее время он выходит пустым внутри файла rc.local как таковой:

[root@server1 ~]# cat /etc/rc.local
#!/bin/sh
/usr/sbin/balance -b 127.0.0.1 3306 :3306 ! :3306

Также для пояснения, ресурс exec "run-balance" производит правильный вывод с правильно проанализированными переменными, и это те же переменные, которые используются в следующем ресурсе "add-rclocal".

Учебный класс

class balance ( 
$dbserver1 = 'server1', 
$dbserver2 = 'server2',
) {

package { 'balance': ensure => "installed",

}->

exec { 'run-balance': 
 command => "/usr/sbin/balance -b 127.0.0.1 3306 ${dbserver1}:3306 ! ${dbserver2}:3306", 
 unless => '/bin/ps afx | grep balance > /dev/null',

}->

exec { 'add-rclocal': 
  command => "echo '/usr/sbin/balance -b 127.0.0.1 3306 ${dbserver1}:3306 ! ${dbserver2}:3306' >> /etc/rc.local",

}

}

1 ответ

Решение

Единственное решение, которое я могу придумать, это даст ваши результаты, если dbserver2 передается как пустая строка. Он будет определен, но пуст, поэтому не будет назначать значение по умолчанию. Вроде как:

class { 'balance':
  dbserver1 => 'dbhost1',
  dbserver2 => '',
}

Возможно, вы захотите проверить свои входные данные. И, возможно, поместите что-то вроде этого, чтобы узнать, как назначаются эти переменные:

warning("Balance was passed servers ${dbserver1} and ${dbserver2}.") 

Который будет выдавать переменные в лог-поток.

Другие вопросы по тегам