Browse Source

chg: added ``host`` first scripts to remember how to install a host.

postgres
Valentin Lab 11 years ago
parent
commit
cf356f947b
  1. 242
      precise/host/hooks/install
  2. 39
      precise/host/src/bind9.patch

242
precise/host/hooks/install

@ -0,0 +1,242 @@
#!/bin/bash
set -eux # -x for verbose logging to juju debug-log
apt-get update
apt-get -y install bash-completion wget bzip2 git-core less language-pack-en python-software-properties tmux mosh sudo git
## 0k git remote path
GIT_0K_BASE=${GIT_0K_BASE:-"git.0k.io:/var/git"}
## 0k git remote options
GIT_0K_CLONE_OPTIONS=${GIT_0K_CLONE_OPTIONS:-""}
##
## etckeeper
##
apt-get install etckeeper
sed -i 's/#VCS="git"/VCS="git"/g' /etc/etckeeper/etckeeper.conf
sed -i 's/VCS="bzr"/#VCS="bzr"/g' /etc/etckeeper/etckeeper.conf
etckeeper init
##
## Git utilities
##
echo "[alias]
co = checkout
com = commit
st = status
ci = commit
[color]
branch = auto
diff = auto
interactive = auto
status = auto
" >> /etc/gitconfig
##
## kal-scripts
##
cat <<EOF >> /etc/apt/sources.list
## vlab's shell libraries
deb http://deb.kalysto.org no-dist kal-alpha kal-beta kal-main
EOF
##
## More shell configurations (prompt, functions)
##
mkdir -p /etc/prompt
cat <<EOF > /etc/prompt/prompt.1.rc
PROMPT_COMMAND=""
parse_git_branch() {
ref=\$(git symbolic-ref HEAD 2> /dev/null) || return
echo -en ' (\033[0;32m'\${ref#refs/heads/}'\033[0m)'
}
export PS1="\[\033[0;37m\][\[\033[1;30m\]\u\[\033[0;37m\]@\[\033[1;30m\]\h\[\033[0;37m\]]-[\[\033[1;34m\]\w\[\033[0;37m\]]\\\$(parse_git_branch)\n\[\033[1;37m\]\\$ \[\033[0;37m\]"
EOF
cat <<EOF >> /root/.bashrc
## History management
export HISTCONTROL=ignoredups
export HISTSIZE=50000
shopt -s histappend
PROMPT_COMMAND='history -a'
## Prompt easy management
prompt() {
prompt_name="prompt.\$1.rc"
for i in /etc/prompt ~/.prompt; do
[ -f "\$i/\$prompt_name" ] &&
. "\$i/\$prompt_name"
done
}
## Git log command
function glog() {
git log --graph --pretty=tformat:%C\(yellow\ normal\)%h%Creset\ %C\(blue\ normal\)%an%Creset\ %s\ %Cgreen%d%Creset -n 20 "\$@"
}
prompt 1
EOF
apt-get install -y kal-scripts python-pip
pip install shyaml
##
## btrfs install
##
apt-get install btrfs-tools
root=/mnt/btrfs-root
#mkdir /mnt/btrfs-root -p
#mount /mnt/btrfs-root
btrfs subvolume create $root/var
mkdir $root/var/{lib,cache,backups} -p
for d in $root/var/{lib,cache,backups}; do
btrfs subvolume create $d/lxc
done
for d in $root/srv/{,lxc-datastore{,/config,/data}}; do
btrfs subvolume create $d
done
mkdir srv/lxc
cat <<EOF >> /etc/fstab
## binds
/mnt/btrfs-root/var/lib/lxc /var/lib/lxc none bind,defaults,auto 0 0
/mnt/btrfs-root/var/cache/lxc /var/cache/lxc none bind,defaults,auto 0 0
/mnt/btrfs-root/var/backups/lxc /var/backups/lxc none bind,defaults,auto 0 0
/mnt/btrfs-root/srv/lxc-datastore /srv/lxc-datastore none bind,defaults,auto 0 0
EOF
mkdir -p /var/backups/lxc /srv/lxc-datastore
##
## lxc tools
##
apt-get install lxc
## mount all
mkdir -p /opt/apps
##
## Install 0k-manage for the handy oe command
##
(
if ! [ -d "/opt/apps/0k-manage" ]; then
cd /opt/apps &&
git clone $GIT_0K_CLONE_OPTIONS "$GIT_0K_BASE/0k/0k-manage.git" &&
cd /opt/apps/0k-manage &&
git checkout 0k/dev/master
fi
)
##
## Install 0k-charms
##
(
if ! [ -d "/opt/apps/0k-charms" ]; then
cd /opt/apps &&
git clone $GIT_0K_CLONE_OPTIONS "$GIT_0K_BASE/0k/0k-charms.git" &&
cd /opt/apps/0k-manage &&
git checkout 0k/dev/master
fi
)
##
## Install lxc-scripts
##
(
if ! [ -d "/opt/apps/lxc-scripts" ]; then
cd /opt/apps &&
git clone $GIT_0K_CLONE_OPTIONS "$GIT_0K_BASE/0k/lxc-scripts.git" &&
cd /opt/apps/0k-manage &&
git checkout master &&
ln -sf /opt/apps/lxc-scripts/bin/lxc-* /usr/local/sbin/ &&
ln -sf /opt/apps/lxc-scripts/usr/lib/lxc/templates/lxc-0k-ubuntu-cloud /usr/lib/lxc/templates/
fi
)
##
## Patch some files
##
(
cd /etc &&
cat /opt/apps/lxc-scripts/precise-12.04.patch | patch -p1
)
##
## Install dns waterfall
##
apt-get install -y bind9 dnsmasq
# edit /etc/dnsmaq.conf
echo "
server=$(. /etc/default/lxc && echo "$LXC_ADDR")
interface=lo
no-negcache
log-queries
log-facility=/var/log/dnsmasq.log
" >> /etc/dnsmasq.conf
(
cd /etc &&
cat src/bind9.patch | patch -p1 &&
sed -ri s/%%EXTERNAL_IP%%/$(. /etc/default/lxc && ifip "$HOST_EXTERNAL_DEVICE")
)
mkdir /var/log/named -p &&
chown bind:bind /var/log/named

39
precise/host/src/bind9.patch

@ -0,0 +1,39 @@
diff --git a/bind/named.conf.options b/bind/named.conf.options
index 5b1981d..c1fd78c 100644
--- a/bind/named.conf.options
+++ b/bind/named.conf.options
@@ -21,8 +21,32 @@ options {
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
- listen-on-v6 { ::1; };
- listen-on { 127.0.0.1; };
+ //listen-on-v6 { ::1; };
+ listen-on { 178.33.122.174; };
// allow-recursion { 127.0.0.1; };
};
+
+logging {
+ channel warning
+ {
+ file "/var/log/named/dns.warnings.log";
+ severity warning;
+ print-category yes;
+ print-severity yes;
+ print-time yes;
+ };
+
+ channel general_dns
+ {
+ file "/var/log/named/dns.log";
+ severity info;
+ print-category yes;
+ print-severity yes;
+ print-time yes;
+ };
+
+ category default { warning; } ;
+ category queries { general_dns; } ;
+};
+
Loading…
Cancel
Save