1
0
mirror of https://github.com/rancher/os.git synced 2025-09-04 16:21:07 +00:00

machine support for rancherOS

This commit is contained in:
wlan0
2015-04-28 04:34:32 -07:00
parent 9c7663b0d3
commit 1626247f48
8 changed files with 93 additions and 8 deletions

View File

@@ -323,6 +323,21 @@ func NewConfig() *Config {
Ipc: "host",
Net: "host",
},
"acpid": {
Image: "acpid",
Privileged: true,
Links: []string{
"console",
},
Labels: []string{
SCOPE + "=" + SYSTEM,
},
VolumesFrom: []string{
"command-volumes",
"system-volumes",
},
Net: "host",
},
},
ServicesInclude: map[string]bool{
"ubuntu-console": false,

View File

@@ -3,6 +3,7 @@ package init
import (
"os"
"os/exec"
"strings"
"syscall"
log "github.com/Sirupsen/logrus"
@@ -12,6 +13,8 @@ import (
"github.com/rancherio/rancher-compose/project"
)
const boot2dockerMagic = "boot2docker, please format-me"
func autoformat(cfg *config.Config) error {
if len(cfg.State.Autoformat) == 0 || util.ResolveDevice(cfg.State.Dev) != "" {
return nil
@@ -43,12 +46,20 @@ outer:
continue
}
boot2docker := false
if strings.HasPrefix(string(buffer[:len(boot2dockerMagic)]), boot2dockerMagic) {
boot2docker = true
}
if boot2docker == false {
for _, b := range buffer {
if b != 0 {
log.Infof("%s not empty", dev)
continue outer
}
}
}
format = dev
break
@@ -73,6 +84,9 @@ outer:
config.SCOPE + "=" + config.SYSTEM,
},
LogDriver: "json-file",
Environment: []string{
"MAGIC=" + boot2dockerMagic,
},
},
"udev": &udev,
})

View File

@@ -26,8 +26,9 @@ RUN rm /sbin/poweroff /sbin/reboot /sbin/halt && \
addgroup -g 1101 docker && \
addgroup -g 1103 sudo && \
adduser -u 1100 -G rancher -D -h /home/rancher -s /bin/bash rancher && \
adduser -u 1101 -G docker -D -h /home/docker -s /bin/bash docker && \
sed -i 's/\(^docker.*\)/\1rancher/g' /etc/group && \
sed -i 's/\(^sudo.*\)/\1rancher/g' /etc/group && \
sed -i 's/\(^sudo.*\)/\1rancher,docker/g' /etc/group && \
echo '%sudo ALL=(ALL) ALL' >> /etc/sudoers
COPY scripts/dockerimages/scripts/inputrc /etc/inputrc
COPY scripts/dockerimages/scripts/entry.sh /usr/sbin/entry.sh

View File

@@ -3,6 +3,9 @@ COPY scripts/dockerimages/scripts/console.sh /usr/sbin/
COPY scripts/dockerimages/scripts/update-ssh-keys /usr/bin/
COPY scripts/dockerimages/scripts/rancheros-install /usr/sbin/
RUN sed -i 's/rancher:!/rancher:*/g' /etc/shadow && \
sed -i 's/docker:!/docker:*/g' /etc/shadow && \
echo '## allow password less for rancher user' >> /etc/sudoers && \
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
echo '## allow password less for docker user' >> /etc/sudoers && \
echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
CMD ["/usr/sbin/console.sh"]

View File

@@ -0,0 +1,2 @@
FROM base
ENTRYPOINT ["/usr/sbin/acpid", "-d"]

View File

@@ -1,5 +1,47 @@
#!/bin/bash
set -ex
if [ -n "$1" ]; then
exec mkfs.ext4 -L RANCHER_STATE $1
# Test for our magic string (it means that the disk was made by ./boot2docker init)
HEADER=`dd if=$1 bs=1 count=${#MAGIC} 2>/dev/null`
if [ "$HEADER" = "$MAGIC" ]; then
# save the preload userdata.tar file
dd if=$1 of=/userdata.tar bs=1 count=8192
fi
mkfs.ext4 -L RANCHER_STATE $1
if [ -e "/userdata.tar" ]; then
mount -t ext4 $1 /var/
mkdir -p /var/lib/rancher/conf/cloud-config.d
echo $(tar -xvf /userdata.tar)
AUTHORIZED_KEY1=$(cat /.ssh/authorized_keys)
AUTHORIZED_KEY2=$(cat /.ssh/authorized_keys2)
tee /var/lib/rancher/conf/cloud-config.d/machine.yml << EOF
#cloud-config
rancher:
network:
interfaces:
eth0:
dhcp: true
eth1:
dhcp: true
lo:
address: 127.0.0.1/8
ssh_authorized_keys:
- $AUTHORIZED_KEY1
- $AUTHORIZED_KEY2
users:
- name: docker
ssh_authorized_keys:
- $AUTHORIZED_KEY1
- $AUTHORIZED_KEY2
EOF
fi
fi

View File

@@ -33,6 +33,13 @@ if [ ! -d ${RANCHER_HOME} ]; then
chmod 2755 ${RANCHER_HOME}
fi
DOCKER_HOME=/home/docker
if [ ! -d ${DOCKER_HOME} ]; then
mkdir -p ${DOCKER_HOME}
chown docker:docker ${DOCKER_HOME}
chmod 2755 ${DOCKER_HOME}
fi
for i in $(</proc/cmdline); do
case $i in
rancher.password=*)

View File

@@ -12,6 +12,7 @@ RUN addgroup --gid 1100 rancher && \
addgroup --gid 1101 docker && \
useradd -u 1100 -g rancher -G docker,sudo -m -s /bin/bash rancher && \
echo '## allow password less for rancher user' >> /etc/sudoers && \
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
echo 'rancher ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers && \
echo 'docker ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
ENTRYPOINT ["/usr/sbin/entry.sh"]
CMD ["/usr/sbin/console.sh"]