度々の投稿失礼します。
chefでexpect文により、複数のrpmを一括インストールするシェルを作成しております。
しかし、一括インストールを行う際に、yumのlockが解除されなくなり、インストールが途中で中断してしまいます。
そこで、エラー文を取得した際に、expectから戻り値をreturnし、lockを解除したのちにインストールを再実行することで解決できるかと考えております。
expectでの戻り値の取得と、それによる再度実行文の実装方法について、ご教授いただけないでしょうか。
# rpmのインストール execute "remove_rpm" do user "root" cwd "/tmp/mysql" command <<-EOH expect -c " spawn sh -c \\"yum localinstall net-tools-2.0-0.17.20131004git.el7.x86_64.rpm mysql-community-common-5.7.17-1.el7.x86_64.rpm mysql-community-libs-5.7.17-1.el7.x86_64.rpm mysql-community-libs-compat-5.7.17-1.el7.x86_64.rpm mysql-community-client-5.7.17-1.el7.x86_64.rpm mysql-community-server-5.7.17-1.el7.x86_64.rpm\\" expect \\"Is thi*\\" send \\"y\\n\\" expect \\"Another app is currently holding the yum lock; waiting for it to exit...\\" expect eof " EOH end
あなたの回答
tips
プレビュー