下载Bash脚本的可下载Bash脚本
我正在努力实现开发虚拟机的自动配置。它做了一些基本的事情:下载Bash脚本的可下载Bash脚本,bash,shell,curl,Bash,Shell,Curl,我正在努力实现开发虚拟机的自动配置。它做了一些基本的事情: 设置公司代理 更新apt get并安装一组库 安装VirtualBox来宾添加 安装RBEnv、一些插件和Ruby 2.2 其余的资源调配将由一些ruby脚本管理,这就是为什么ruby是这个脚本的最后一步 我将这些内容分解成单独的脚本,通过运行 curl some.host/proxy.sh | bash 因此,为了实现在空白虚拟机上进行单命令资源调配的梦想,我尝试制作如下内容: curl some.host/proxy.sh | ba
curl some.host/proxy.sh | bash
source ~/.bashrc
curl some.host/apt.sh | bash
curl some.host/guest_additions.sh | bash
curl some.host/development_base.sh | bash
代理脚本(这将成功完成):
apt命令
sudo apt-get update
sudo apt-get install -y build-essential git-core libxml2 libxml2-dev libxslt1-dev dkms linux-headers-generic linux-headers-$(uname -r) zlib1g-dev libssl-dev tklib
来宾添加(此操作从不运行)
Ruby(这个永远不会运行)
这非常有效,直到客户添加脚本
apt get安装需要几分钟,完成后,脚本就停止了。它从不尝试出去获取/运行下一个脚本
正确的方法是什么
编辑:
好的,有很多评论,我会尽量在这里而不是评论中提及
我可能会考虑在某个时候使用puppet或其他东西,但现在我不想这样做。当脚本完全运行时会发生什么?那剧本是干什么的?这组命令在何处/何时运行?这取决于它停止的原因,而复制则取决于此处未显示的细节。您使用的是
set-e
还是错误陷阱?这个脚本本身的stdin是否被子进程吃掉?(如果这是apt get install
,例如,运行它…无论如何,您需要为我们构建一个复制器来提供帮助。这种问题取决于细节;实际上没有复制问题的伪代码没有多大帮助。听起来您想使用类似Chef的东西。或者这是Chef r的一部分ecipe?同意以上所有内容。您还可以在guest\u additions.sh
中添加set-vx
,并查看暂停时执行的命令。祝您好运。
sudo apt-get update
sudo apt-get install -y build-essential git-core libxml2 libxml2-dev libxslt1-dev dkms linux-headers-generic linux-headers-$(uname -r) zlib1g-dev libssl-dev tklib
source ~/.bashrc
guest_additions_iso=VBoxGuestAdditions_4.3.28.iso
wget --directory-prefix=$HOME http://dlc-cdn.sun.com/virtualbox/4.3.28/$guest_additions_iso
sudo mount -o loop $HOME/$guest_additions_iso /mnt
sudo /mnt/VBoxLinuxAdditions.run
sudo umount -f /mnt
rm $HOME/$guest_additions_iso
git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
git clone https://github.com/sstephenson/rbenv-gem-rehash.git ~/.rbenv/plugins/rbenv-gem-rehash
export PATH="$HOME/.rbenv/bin:$HOME/.rbenv/shims:$PATH"
if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
rbenv install 2.1.5
rbenv global 2.1.5
gem install bundler