diff --git a/MANIFEST.in b/MANIFEST.in index 7b325ee..e9bd8fd 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ include cf_remote/nt-discovery.sh include cf_remote/Vagrantfile +include cf_remote/default_provision.sh diff --git a/cf_remote/Vagrantfile b/cf_remote/Vagrantfile index 8a88cde..960a28e 100644 --- a/cf_remote/Vagrantfile +++ b/cf_remote/Vagrantfile @@ -15,6 +15,7 @@ VM_CPUS = config['cpus'] VM_PROVISION = File.expand_path(config['provision'], __FILE__) VM_NAME = config['name'] SYNC_FOLDER = config['sync_folder'] +DEFAULT_PROVISION_SCRIPT = config['default_provision'] Vagrant.configure("2") do |config| @@ -25,6 +26,7 @@ Vagrant.configure("2") do |config| node.vm.network "private_network", ip: "192.168.56.#{9 + i}" node.vm.box = VM_BOX + node.vm.provision "default_provision", type: "shell", path: DEFAULT_PROVISION_SCRIPT node.vm.provision "shell" do |s| ssh_pub_key_path = "#{Dir.home}/.ssh/id_rsa.pub" if !File.file?(ssh_pub_key_path) diff --git a/cf_remote/default_provision.sh b/cf_remote/default_provision.sh new file mode 100644 index 0000000..59d0ccd --- /dev/null +++ b/cf_remote/default_provision.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash +set -e + +# some boxes miss these files +sudo mkdir -p /root/.ssh +sudo chmod 700 /root/.ssh +sudo touch /root/.ssh/authorized_keys +sudo chmod 600 /root/.ssh/authorized_keys + +if grep -q "centos:7" /etc/*release; then + echo "CentOS 7 EOL detected. Switching to Vault mirrors..." + sudo sed -i 's/mirrorlist.centos.org/vault.centos.org/g' /etc/yum.repos.d/CentOS-*.repo + sudo sed -i 's/#baseurl=http:\/\/mirror.centos.org/baseurl=http:\/\/vault.centos.org/g' /etc/yum.repos.d/CentOS-*.repo + sudo sed -i 's/^mirrorlist=/#mirrorlist=/g' /etc/yum.repos.d/CentOS-*.repo + sudo yum clean all +fi + +echo "Successfully provisioned VM" diff --git a/cf_remote/spawn.py b/cf_remote/spawn.py index 73b8805..a7e3b25 100644 --- a/cf_remote/spawn.py +++ b/cf_remote/spawn.py @@ -801,6 +801,7 @@ def spawn_vm_in_vagrant( "provision": bootstrap, "name": name, "sync_folder": sync_folder, + "default_provision": os.path.join(dirname(__file__), "default_provision.sh"), } log.debug("Saving the vagrant VM config") @@ -818,9 +819,6 @@ def spawn_vm_in_vagrant( vagrant_env = os.environ.copy() vagrant_env["VAGRANT_CWD"] = vagrantdir - if provision_script is None: - command_args.append("--no-provision") - log.debug("Starting the VM(s)") try: result = subprocess.run(command_args, env=vagrant_env, stderr=subprocess.PIPE)