blob: 89c716c9011549a514d58b88e5b0507b0762d692 [file] [log] [blame]
#!/bin/bash -ex
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
####################################################################################################
# NOTE: When making changes to this file (especially if you are installing new packages), consider
# instead making changes to the base vagrant box (see build-support/packer/README.md).
####################################################################################################
readonly IP_ADDRESS=192.168.33.7
function prepare_extras() {
pushd aurora
# Include build script in default PATH.
ln -sf /home/vagrant/aurora/examples/vagrant/aurorabuild.sh /usr/local/bin/aurorabuild
popd
}
function install_cluster_config {
mkdir -p /etc/aurora
ln -sf /home/vagrant/aurora/examples/vagrant/clusters.json /etc/aurora/clusters.json
}
function install_ssh_config {
cat >> /etc/ssh/ssh_config <<EOF
# Allow local ssh w/out strict host checking
Host *
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
EOF
}
function install_rsyslog_config {
cat >> /etc/rsyslog.d/10-aurora.conf <<EOF
# Send scheduler logs to /var/log/aurora/scheduler.log
:syslogtag, contains, "aurora-scheduler" /var/log/aurora/scheduler.log
# Send observer logs to /var/log/thermos/observer.log
:syslogtag, contains, "thermos-observer" /var/log/thermos/observer.log
EOF
systemctl restart rsyslog
}
function configure_netrc {
cat > /home/vagrant/.netrc <<EOF
machine $(hostname -f)
login aurora
password secret
EOF
chown vagrant:vagrant /home/vagrant/.netrc
}
function docker_setup {
gpasswd -a vagrant docker
echo 'DOCKER_OPTS="--storage-driver=aufs"' | sudo tee --append /etc/default/docker
systemctl restart docker
}
function start_services {
# Executing true on failure to please bash -e in case services are already running
systemctl start zookeeper || true
}
function prepare_sources {
apt-get install
# Assign mesos command line arguments.
cp /vagrant/examples/vagrant/mesos_config/etc_mesos-slave/* /etc/mesos-slave
cp /vagrant/examples/vagrant/mesos_config/etc_mesos-master/* /etc/mesos-master
systemctl stop mesos-master || true
systemctl stop mesos-slave || true
# Remove slave metadata to ensure slave start does not pick up old state.
rm -rf /var/lib/mesos/meta/slaves/latest
systemctl start mesos-master
systemctl start mesos-slave
sudo cp /vagrant/examples/vagrant/systemd/{aurora-scheduler,thermos}.service /etc/systemd/system
cat > /usr/local/bin/update-sources <<EOF
#!/bin/bash
rsync -urzvhl /vagrant/ /home/vagrant/aurora \
--filter=':- /vagrant/.gitignore' \
--exclude=.git \
--exclude=/third_party \
--delete
# Install/update the upstart configurations.
sudo cp /vagrant/examples/vagrant/systemd/{aurora-scheduler,thermos}.service /etc/systemd/system
EOF
chmod +x /usr/local/bin/update-sources
update-sources > /dev/null
chown -R vagrant:vagrant /home/vagrant
}
prepare_sources
prepare_extras
install_cluster_config
install_ssh_config
install_rsyslog_config
start_services
configure_netrc
docker_setup
su vagrant -c "aurorabuild all"