mirror of
https://github.com/rancher/os.git
synced 2025-09-05 08:42:38 +00:00
machine support for rancherOS
This commit is contained in:
@@ -323,6 +323,21 @@ func NewConfig() *Config {
|
|||||||
Ipc: "host",
|
Ipc: "host",
|
||||||
Net: "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{
|
ServicesInclude: map[string]bool{
|
||||||
"ubuntu-console": false,
|
"ubuntu-console": false,
|
||||||
|
@@ -3,6 +3,7 @@ package init
|
|||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
"strings"
|
||||||
"syscall"
|
"syscall"
|
||||||
|
|
||||||
log "github.com/Sirupsen/logrus"
|
log "github.com/Sirupsen/logrus"
|
||||||
@@ -12,6 +13,8 @@ import (
|
|||||||
"github.com/rancherio/rancher-compose/project"
|
"github.com/rancherio/rancher-compose/project"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const boot2dockerMagic = "boot2docker, please format-me"
|
||||||
|
|
||||||
func autoformat(cfg *config.Config) error {
|
func autoformat(cfg *config.Config) error {
|
||||||
if len(cfg.State.Autoformat) == 0 || util.ResolveDevice(cfg.State.Dev) != "" {
|
if len(cfg.State.Autoformat) == 0 || util.ResolveDevice(cfg.State.Dev) != "" {
|
||||||
return nil
|
return nil
|
||||||
@@ -43,12 +46,20 @@ outer:
|
|||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boot2docker := false
|
||||||
|
|
||||||
|
if strings.HasPrefix(string(buffer[:len(boot2dockerMagic)]), boot2dockerMagic) {
|
||||||
|
boot2docker = true
|
||||||
|
}
|
||||||
|
|
||||||
|
if boot2docker == false {
|
||||||
for _, b := range buffer {
|
for _, b := range buffer {
|
||||||
if b != 0 {
|
if b != 0 {
|
||||||
log.Infof("%s not empty", dev)
|
log.Infof("%s not empty", dev)
|
||||||
continue outer
|
continue outer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
format = dev
|
format = dev
|
||||||
break
|
break
|
||||||
@@ -73,6 +84,9 @@ outer:
|
|||||||
config.SCOPE + "=" + config.SYSTEM,
|
config.SCOPE + "=" + config.SYSTEM,
|
||||||
},
|
},
|
||||||
LogDriver: "json-file",
|
LogDriver: "json-file",
|
||||||
|
Environment: []string{
|
||||||
|
"MAGIC=" + boot2dockerMagic,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
"udev": &udev,
|
"udev": &udev,
|
||||||
})
|
})
|
||||||
|
@@ -26,8 +26,9 @@ RUN rm /sbin/poweroff /sbin/reboot /sbin/halt && \
|
|||||||
addgroup -g 1101 docker && \
|
addgroup -g 1101 docker && \
|
||||||
addgroup -g 1103 sudo && \
|
addgroup -g 1103 sudo && \
|
||||||
adduser -u 1100 -G rancher -D -h /home/rancher -s /bin/bash rancher && \
|
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/\(^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
|
echo '%sudo ALL=(ALL) ALL' >> /etc/sudoers
|
||||||
COPY scripts/dockerimages/scripts/inputrc /etc/inputrc
|
COPY scripts/dockerimages/scripts/inputrc /etc/inputrc
|
||||||
COPY scripts/dockerimages/scripts/entry.sh /usr/sbin/entry.sh
|
COPY scripts/dockerimages/scripts/entry.sh /usr/sbin/entry.sh
|
||||||
|
@@ -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/update-ssh-keys /usr/bin/
|
||||||
COPY scripts/dockerimages/scripts/rancheros-install /usr/sbin/
|
COPY scripts/dockerimages/scripts/rancheros-install /usr/sbin/
|
||||||
RUN sed -i 's/rancher:!/rancher:*/g' /etc/shadow && \
|
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 '## 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"]
|
CMD ["/usr/sbin/console.sh"]
|
||||||
|
2
scripts/dockerimages/12-acpid
Normal file
2
scripts/dockerimages/12-acpid
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
FROM base
|
||||||
|
ENTRYPOINT ["/usr/sbin/acpid", "-d"]
|
@@ -1,5 +1,47 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -ex
|
||||||
|
|
||||||
if [ -n "$1" ]; then
|
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
|
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
|
||||||
|
|
||||||
|
@@ -33,6 +33,13 @@ if [ ! -d ${RANCHER_HOME} ]; then
|
|||||||
chmod 2755 ${RANCHER_HOME}
|
chmod 2755 ${RANCHER_HOME}
|
||||||
fi
|
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
|
for i in $(</proc/cmdline); do
|
||||||
case $i in
|
case $i in
|
||||||
rancher.password=*)
|
rancher.password=*)
|
||||||
|
@@ -12,6 +12,7 @@ RUN addgroup --gid 1100 rancher && \
|
|||||||
addgroup --gid 1101 docker && \
|
addgroup --gid 1101 docker && \
|
||||||
useradd -u 1100 -g rancher -G docker,sudo -m -s /bin/bash rancher && \
|
useradd -u 1100 -g rancher -G docker,sudo -m -s /bin/bash rancher && \
|
||||||
echo '## allow password less for rancher user' >> /etc/sudoers && \
|
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"]
|
ENTRYPOINT ["/usr/sbin/entry.sh"]
|
||||||
CMD ["/usr/sbin/console.sh"]
|
CMD ["/usr/sbin/console.sh"]
|
||||||
|
Reference in New Issue
Block a user