1
我試圖執行一個腳本與流浪+木偶部署後:流浪+木偶:部署命令後執行腳本沒有找到
include nginx
$nginx_conf_path = "${files_path}/${fqdn}/etc/nginx/sites-available"
nginx::site { 'test.example.com.conf' :
source => "${nginx_conf_path}/test.example.com.conf",
}
exec { 'install-letsencrypt.sh test.example.com':
require => [Nginx::Site['test.example.com.conf'], Class['profile::ssl']],
command => 'install-letsencrypt.sh test.example.com',
path => '/home/vagrant/bin/'
}
與ssl.pp
:
class profile::ssl {
file { "/home/vagrant/bin" :
ensure => "directory",
owner => "vagrant",
group => "vagrant",
}
file { "/home/vagrant/bin/install-letsencrypt.sh":
ensure => "present",
owner => "vagrant",
group => "vagrant",
mode => 700,
source => "puppet:///modules/example/shared/install-letsencrypt.sh"
}
}
而且install-letsencrypt.sh
:
if [ ! -d "/opt/letsencrypt" ]; then
sudo git clone https://github.com/letsencrypt/letsencrypt /opt/letsencrypt
fi
# ...etc
該profile::ssl
工程,因爲/home/vagrant/bin/install-letsencrypt.sh
是可用的,但是當我嘗試exec
它的傀儡,我得到:
==> test.example.com: Error: Deploying Let's encrypt for test.mojjo.fr
==> test.example.com: /home/vagrant/bin/install-letsencrypt.sh: line 11: sudo: command not found
==> test.example.com: /home/vagrant/bin/install-letsencrypt.sh: line 14: mkdir: command not found
==> test.example.com: /home/vagrant/bin/install-letsencrypt.sh: line 17: sudo: command not found
==> test.example.com: /home/vagrant/bin/install-letsencrypt.sh: line 23: sudo: command not found
==> test.example.com: /home/vagrant/bin/install-letsencrypt.sh: line 25: sudo: command not found
我在做什麼錯?我嘗試了絕對可執行路徑(/usr/bin/sudo
而不是sudo
),但它也不起作用。如果我ssh test.example.com
並在那裏運行,它也可以工作,所以問題不在腳本中。
在此先感謝
感謝您的幫助。我仍然得到'/ bin/bash:install-letsencrypt.sh:command not found'。我嘗試了'command =>「/ bin/bash -c'install-letsencrypt.sh test.mojjo.fr'」'並使用'command =>「bash -c'install-letsencrypt.sh test.mojjo.fr' 「,path =>'/ bin'' ... –
然後放腳本'/ home/vagrant/bin/install-letsencrypt.sh'的完整路徑並確保vagrant正在運行腳本'user =>'vagrant '' –
'user =>'vagrant''做了訣竅。謝謝。不知道是否需要'/ bin/bash' ... –