簡體   English   中英

人偶執行程序返回1而不是[0]

[英]puppet exec returned 1 instead of [0]

我正在嘗試運行puppet來配置虛擬機。 執行失敗的命令是Exec。

exec { 'configure openssl-arm': 
           logoutput => on_failure, 
           loglevel => verbose, 
           command => '/opt/openssl-1.0.1g/Configure dist --prefix=/opt/openssl-1.0.1g/armbuild', 
           cwd => '/opt/openssl-1.0.1g', 
           user => root, 
           environment => 'CC=arm-axis-linux-gnueabi-gcc' 
      }

我非常有信心這是一個木偶戲。

我試圖運行的命令是通過exec 如果我不熟悉ssh,可以手動運行該命令。

木偶: err:/ Stage [main] // Exec [configure openssl-arm] / returns:從notrun更改為0失敗:/opt/openssl-1.0.1g/Configure dist --prefix = / opt / openssl-1.0。 1g / armbuild在/tmp/vagrant-puppet-6/manifests/default.pp:36返回1,而不是[0]之一。

手冊

local> vagrant ssh
vagrant@precise32 > sudu su
root@precise32 > export CC=arm-axis-linux-gnuabi-gcc
root@precise32 > /opt/openssl-1.0.1g/Configure dist --prefix=/opt/openssl-1.0.1g/armbuild
....
.... lots of output
....
root@precise32 > echo $?
0

須藤人偶適用

debug: /Schedule[hourly]: Skipping device resources because running on a host
debug: Exec[configure openssl-arm](provider=posix): Executing '/opt/openssl-1.0.1g/Configure dist --prefix=/opt/openssl-1.0.1g/armbuild'
debug: Executing '/opt/openssl-1.0.1g/Configure dist --prefix=/opt/openssl-1.0.1g/armbuild'
err: /Stage[main]//Exec[configure openssl-arm]/returns: change from notrun to 0 failed: /opt/openssl-1.0.1g/Configure dist --prefix=/opt/openssl-1.0.1g/armbuild returned 1 instead of one of [0] at /tmp/build.pp:1
debug: /Schedule[never]: Skipping device resources because running on a host
debug: /Schedule[weekly]: Skipping device resources because running on a host
debug: /Schedule[puppet]: Skipping device resources because running on a host
debug: Finishing transaction -613771238

無業游民的盒子 https://drive.google.com/file/d/0B7B7RIseycQkTGxXczRqVGdDVGs/edit?usp=sharing

聽起來需要更多環境變量來運行您的腳本,而這些腳本在木偶運行期間不存在; 我曾經在Maven構建腳本中遇到過同樣的問題。 編輯您的Exec命令以在build命令之前獲取您的概要文件,因此最終的“腳本”運行如下所示:

#!/bin/bash
source $HOME/.bash_profile
export CC=arm-axis-linux-gnuabi-gcc
/opt/openssl-1.0.1g/Configure dist .......

因此,用人偶術語來說:

exec { 'configure openssl-arm': 
       command => 'source $HOME/.bash_profile; /opt/openssl-1.0.1g/Configure dist --prefix=/opt/openssl-1.0.1g/armbuild', 
       cwd => '/opt/openssl-1.0.1g', 
       user => root, 
       environment => 'CC=arm-axis-linux-gnueabi-gcc' 
  }

另外,不要忘記檢查腳本返回的實際值。 也許它運行正常,但由於某些神秘的原因而返回非零值。 這不是我第一次使用Puppet部署軟件包,並且由於錯誤地實現了“狀態”命令,服務初始化腳本需要進行一些后期調整。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM