Я никогда не настраивал кластер этот путь, но я выполнил несколько VM's Windows 2008 Server в ESXI на Рабочей станции только, чтобы видеть, работало ли это. Даже с довольно достойной рабочей станцией (твердотельные диски, загрузки RAM, Core i7 ЦП) VM's Сервера были функциональны, но не действительно применимы.
Для сравнения выполнение подобного VM's сервера одновременно непосредственно на Рабочей станции совершенно применимо, просто удостоверяются, что у Вас есть много RAM и быстрого диска (или еще лучше, дисков).
В случаях, когда выражение sed содержит '/', вы можете рассмотреть возможность использования другого разделителя. В этом примере я выбрал вертикальную черту.
sed -i.bak 's | PREFIX = / jenkins | PREFIX = / foobar | g' / etc / default / jenkins
Использование этого синтаксиса в манифесте Puppet будет на мой взгляд, намного чище и читабельнее.
Из страницы информации sed:
\% REGEXP% ' (
% 'можно заменить любым другим одиночным символом.)Это также соответствует регулярному выражению REGEXP, но позволяет используйте другой разделитель, чем `/ '. Это особенно полезно если сам REGEXP содержит много косых черт, так как он избегает утомительное избавление от каждого символа "/". Если в REGEXP есть символы-разделители, каждый должен быть экранирован обратной косой чертой (`\ ').
Во многих версиях sed вы можете использовать другой символ в качестве разделителя, чтобы избежать необходимости экранирования / например, довольно часто используется | или #
sed -i.bak 's#PREFIX=/jenkins#PREFIX=/foobar#g' /etc/default/jenkins
Эй, стой ... подождите! Сед в марионеточном манифесте немного сумасшедший. Вы должны использовать ресурс file_line из библиотеки puppetlabs stdlib.
(вы должны установить весь модуль, но это пользовательский тип ресурса) https://github.com/puppetlabs/puppetlabs-stdlib/blob/master/lib/puppet/type/file_line.rb
Пример:
file_line { 'sudo_rule':
path => '/etc/sudoers',
line => '%sudo ALL=(ALL) ALL',
}
Оказывается, \\\\ /
работает.
Например:
exec { 'Change-prefix':
command => "sed -i.bak s/PREFIX=\\\\/jenkins/PREFIX=\\\\/foorbar/g /etc/default/jenkins",
path => ["/bin"],
}
Изменить : ... но, конечно, используя другой разделитель, как предложили Кенни и Иэн , это намного более чистое решение!