Skip to content

Instantly share code, notes, and snippets.

@newmen
Last active February 29, 2016 13:35
Show Gist options
  • Save newmen/4ff481677ff8ca6e8870 to your computer and use it in GitHub Desktop.
Save newmen/4ff481677ff8ca6e8870 to your computer and use it in GitHub Desktop.
The environment files for OSA CentOS 7
#!/bin/sh
guest_user='root'
guest_ip='10.0.16.61'
guest=${guest_user}@${guest_ip}
guest_path=/root/osa
host_path=/Users/newmen/projects/odin/osa
if ! [ -e $host_path ]; then
mkdir $host_path
fi
sshfs ${guest}:${guest_path} ${host_path}
#!/bin/sh
odin_dir=/Users/newmen/projects/odin
osa_dir='osa'
osa_path=${odin_dir}/${osa_dir}
check=`df | grep ${osa_dir}`
if [ "${check}" != "" ]; then
umount ${osa_path}
fi
# -*- mode: ruby -*-
# vi: set ft=ruby :
OWN_EMAIL = ''.freeze
JOB_EMAIL = ''.freeze
JDK_PKG = '/root/Downloads/jdk-8u73-linux-x64.rpm'.freeze
OSA_PKGS = %(
apr-devel bison bison flex flex gcc-c++ gettext glib2-devel glib2-devel glibc.i686 hiredis-devel libev-devel
libevent-devel libevent-devel libuuid-devel libuuid-devel mariadb-devel openldap-devel openldap-devel
postgresql-devel protobuf-devel protobuf-devel quota-devel quota-devel rpm-build rpm-build
).freeze
ADD_PKGS = "git htop kernel-headers kernel-devel python #{JDK_PKG} #{OSA_PKGS}".freeze
# You can place the copies of your configuration files like .bash_profile and .gitconfig to
# this directory which must be located at your host HOME directory
LINKED_CFGS_DIR_NAME = '.linked-cfgs'.freeze
CFGS_PATHS = Dir["~/#{LINKED_CFGS_DIR_NAME}/.*"].reject { |s| s[-1] == '.' }.freeze
COPY_CFGS_CMDS = CFGS_PATHS.map { |path| "yes | cp -R #{path} ~/#{File.basename(path)}" }.freeze
# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.
config.ssh.username = "root"
config.ssh.password = "vagrant"
# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
config.vm.box = "relativkreativ/centos-7-minimal"
config.vm.hostname = "centos-7"
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false
# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing "localhost:8080" will access port 80 on the guest machine.
# config.vm.network "forwarded_port", guest: 80, host: 8080
# Create a private network, which allows host-only access to the machine
# using a specific IP.
config.vm.network "private_network", ip: "10.0.16.61"
# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
# config.vm.network "public_network"
# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
config.vm.synced_folder "/Users/newmen/Downloads", "/root/Downloads"
config.vm.synced_folder "/Users/newmen/#{LINKED_CFGS_DIR_NAME}", "/root/#{LINKED_CFGS_DIR_NAME}"
# Bundling host with guest
config.trigger.after :up do
run "bash mount_osa.sh"
end
config.trigger.before :halt do
run 'bash umount_osa.sh'
end
# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider "virtualbox" do |vb|
# Display the VirtualBox GUI when booting the machine
vb.gui = false
vb.customize ["modifyvm", :id, "--ioapic", "on"]
vb.customize ["modifyvm", :id, "--cpus" , "8"]
vb.customize ["modifyvm", :id, "--memory", "6144"]
end
#
# View the documentation for the provider you are using for more
# information on available options.
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
# such as FTP and Heroku are also available. See the documentation at
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
# config.push.define "atlas" do |push|
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME"
# end
# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
config.vm.provision "shell", inline: <<-SHELL
sudo su
yum -y install epel-release
yum -y update
yum -y install #{ADD_PKGS}
cd
#{COPY_CFGS_CMDS.join("\n")}
gf=.gitconfig
cat #{LINKED_CFGS_DIR_NAME}/$gf | sed 's/#{OWN_EMAIL}/#{JOB_EMAIL}/g' > $gf
git clone https://github.com/magicmonty/bash-git-prompt.git .bash-git-prompt
cd -
SHELL
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment