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
, 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. –
Teşekkürler @BrianMorton iyi bir nokta, ben – ydaetskcoR
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