2015-04-01 14 views

cevap

7

temel hazırlığı kolayca şef olmadan yapılabilir/Kukla/Ansible ve bunun yerine kabuğu kullanıyor. Vagrant docsVagrant docsVagrant docs, bu temel provizyonu, bir boostrap.sh dosyasından Apache'yi indirmesi örneğiyle oldukça iyi karşılamaktadır. provisioned edilirken

Benzer bir bootstrap.sh dosyasını aramak için Vagrantfile düzenlerken aynı adımları izleyebilirsiniz:

Vagrant.configure("2") do |config| 
    ... 
    config.vm.provision :shell, path: "bootstrap.sh" 
    ... 
end 

Ardından Vagrantfile aynı dizinde bir bootstrap.sh dosyası oluşturmak hangi bu nedenle bu zaten yok varsayarak kök kullanıcının crontab bir cron işi ekler root olarak çalıştırmak varsayılan Serseri provisioners By

#!/bin/bash 
# Adds a crontab entry to curl google.com every hour on the 5th minute 

# Cron expression 
cron="5 * * * * curl http://www.google.com" 
    # │ │ │ │ │ 
    # │ │ │ │ │ 
    # │ │ │ │ └───── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0) 
    # │ │ │ └────────── month (1 - 12) 
    # │ │ └─────────────── day of month (1 - 31) 
    # │ └──────────────────── hour (0 - 23) 
    # └───────────────────────── min (0 - 59) 

# Escape all the asterisks so we can grep for it 
cron_escaped=$(echo "$cron" | sed s/\*/\\\\*/g) 

# Check if cron job already in crontab 
crontab -l | grep "${cron_escaped}" 
if [[ $? -eq 0 ]] ; 
    then 
    echo "Crontab already exists. Exiting..." 
    exit 
    else 
    # Write out current crontab into temp file 
    crontab -l > mycron 
    # Append new cron into cron file 
    echo "$cron" >> mycron 
    # Install new cron file 
    crontab mycron 
    # Remove temp file 
    rm mycron 
fi 

: gibi bir şey içerecektir. Eğer serseri kullanıcının crontab eklemek istiyorsanız o zaman false için privileged işaret setiyle Provisioner çalıştırmak gerekir:

Aslında
config.vm.provision :shell, path: "bootstrap.sh", privileged: false 
+0

, bu şekilde çalıştırılır provizyon komut dosyaları gibi root cron olarak bu koyacağız düşünüyorum ayrıcalıklı bayrak false değerine ayarlanmadıkça root. –

+0

Teşekkürler @BrianMorton iyi bir nokta, ben – ydaetskcoR

+0

cevabı güncelledim var adının cron_escaped var, ama grep içinde $ {cronescaped} ile kontrol, bu yüzden alt çizgi olmadan? teşekkür ederim – Notflip

İlgili konular