私は、迷惑メールボックスを準備しています。しかし、私の迷惑メールホストは無能な人をサポートしていないので、私は迷惑メールボックスの中からローカルホストに対して無防備に実行しなければなりません。私はシェルプロビジョナを使用しています。これは、実行可能なスクリプトを実行し、同期されたフォルダ内のプレイブックに対して正しい安全なコマンドを実行します。寄せ集めの構成を整理しておく方法
このソリューションは機能しますが、構成データがファイル間でぎゅっとしているため、扱いにくく、維持が困難です。以下に示すように、Vagrantfileとプロビジョニングスクリプトの両方にハードコードされたプレイブックパスの複製があります。そして、われわれが知っているように、重複が悪の源です。むしろ、すべての設定文字列をVagrantfileまたは外部ファイルに保存したいと考えています。私の場合はこれが可能ですか?コマンドラインパラメータでこれらの値を上書きすることもできればうれしいでしょう。ここで
は、プロビジョニング・スクリプトapt-get install -y python-pip
apt-get install -y git-core
if [ -z $PLAYBOOK_PATH ]; then
echo "PLAYBOOK_PATH not set, using default"
PLAYBOOK_PATH=/etc/provisioning/vagrant/playbook.yml
fi
if [ -n $PLAYBOOK_PATH ]; then
echo "PLAYBOOK_PATH set at $PLAYBOOK_PATH"
if [ -f $PLAYBOOK_PATH ]; then
echo "PLAYBOOK FOUND, insalling ansible and starting provisioning"
pip install ansible
pip install markupsafe
if (ansible-playbook $PLAYBOOK_PATH); then
echo "provisioning OK"
else
echo "prvosioning failed"
fi
else
echo "PLAYBOOK not found"
fi
else
echo "PLAYBOOK_PATH not set"
fi
放浪ファイルここ
VAGRANT_API_VERSION = 2
BOX_IMAGE = "ubuntu/trusty64"
PROVISIONING_SRC = "./provisioning"
PROVISIONING_DEST = "/etc/provisioning/vagrant"
Vagrant.configure(VAGRANT_API_VERSION) do |config|
config.vm.box = BOX_IMAGE
config.vm.network "private_network", ip: "192.168.22.22"
config.vm.network "forwarded_port", guest: 8080, host: 8080
config.vm.network "forwarded_port", guest: 8081, host: 8081
config.vm.network "forwarded_port", guest: 2222, host: 2223
config.vm.network "forwarded_port", guest: 5000, host: 5000
config.vm.network "forwarded_port", guest: 50000, host: 50000
config.vm.provision :shell, path: "provisioning.sh"
config.vm.synced_folder "./provisioning", "/etc/provisioning/vagrant"
end
され、最終的にここにフォルダ
- name: Provision local docker host
hosts: localhost
become : yes
roles:
- docker.ubuntu
tasks:
- name: Add vagrant to docker group
become: yes
user: name=vagrant groups=docker append=yes