Skip to content

Instantly share code, notes, and snippets.

@yutokyokutyo
Last active August 29, 2015 14:11
Show Gist options
  • Save yutokyokutyo/0d774cebab0c07877a9a to your computer and use it in GitHub Desktop.
Save yutokyokutyo/0d774cebab0c07877a9a to your computer and use it in GitHub Desktop.

問題

ううむ。。VM上で puppet aplly するとエラーがでるなあ。(正確にはvagrant provision) パッケージが間違っているっぽい。 それと SSH command でエラー?? なんなんだろう??

==> default: Info: Applying configuration version '1418268595'
==> default: Error: Execution of '/usr/bin/yum -d 0 -e 0 -y list libxslt sqlite.x86_64' returned 1: Error: No matching Packages to list
==> default: Error: /Stage[main]/Main/Package[libxslt sqlite.x86_64]/ensure: change from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y list libxslt sqlite.x86_64' returned 1: Error: No matching Packages to list
==> default: Notice: Finished catalog run in 1.75 seconds
The SSH command responded with a non-zero exit status. Vagrant
assumes that this means the command failed. The output for this command
should be in the log above. Please read the output to determine what
went wrong.
@yutokyokutyo
Copy link
Author

解決

init.pp の中の一番下のパッケージ指定部分で、libxsltsqliteが同じ行に含まれていたことが原因でした。

  • コマンドの成否は0が成功、失敗は1

修正前

package {
[
'patch',
'git',
'openssl-devel',
'readline-devel',
'libxml2-devel',
'libxslt-devel',
'sqlite-devel',
'gcc',
'gcc-c++',
'openssl',
'readline',
'libxml2',
'libxslt sqlite',
]:
ensure => installed,
}

修正後

package {
[
'patch',
'git',
'openssl-devel',
'readline-devel',
'libxml2-devel',
'libxslt-devel',
'sqlite-devel',
'gcc',
'gcc-c++',
'openssl',
'readline',
'libxml2',
'libxslt',
'sqlite',
]:
ensure => installed,
}

puppet apply できた!

==> default: Info: Applying configuration version '1418270354'
==> default: Notice: Finished catalog run in 0.24 seconds

@yutokyokutyo
Copy link
Author

shell script の場合も同じような記法になっているけど、こっちは大丈夫なのかな?

packages=(
    patch
    git
    openssl-devel
    readline-devel
    libxml2-devel
    libxslt-devel
    sqlite-devel.x86_64
    gcc
    gcc-c++
    openssl
    readline
    libxml2.x86_64
    libxslt sqlite.x86_64
)
sudo yum -y install "${packages[@]}"

お!vagrant destroy して再度パッケージ部分のみをvagrant provision してみたらテストも通ってる!
どうやらshell ではこの書き方はありだけどもpuppetではダメってことみたい。

テスト結果

packages
  Package "patch"
    should be installed
  Package "git"
    should be installed
  Package "gcc"
    should be installed
  Package "gcc-c++"
    should be installed
  Package "openssl"
    should be installed
  Package "openssl-devel"
    should be installed
  Package "readline"
    should be installed
  Package "readline-devel"
    should be installed
  Package "libxml2.x86_64"
    should be installed
  Package "libxml2-devel"
    should be installed
  Package "libxslt"
    should be installed
  Package "libxslt-devel"
    should be installed
  Package "sqlite.x86_64"
    should be installed
  Package "sqlite-devel.x86_64"
    should be installed

@yutokyokutyo
Copy link
Author

なるほど〜。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment