Skip to content

Instantly share code, notes, and snippets.

@timfreund
Created February 21, 2017 01:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save timfreund/bf47fd9ddf6e105198f63f684d920137 to your computer and use it in GitHub Desktop.
Save timfreund/bf47fd9ddf6e105198f63f684d920137 to your computer and use it in GitHub Desktop.
openshift via docker on centos 7
#!/bin/bash
# install docker
yum install -y docker
systemctl enable docker
systemctl start docker
# download openshift image
docker pull openshift/origin:v1.4.1
# make some directories we'll use in the next step
mkdir -p /var/lib/origin/openshift.local.config
mkdir -p /var/lib/origin/openshift.local.etcd
mkdir -p /var/lib/origin/openshift.local.volumes
# write out openshift config files. OpenShift can run without any
# configuration files, but this gives us the option of changing the
# config to, say, add authentication
docker run -i \
--privileged --pid=host --net=host \
-v /var/lib/origin/openshift.local.config:/var/lib/origin/openshift.local.config:rw \
openshift/origin:v1.4.1 start --write-config=/var/lib/origin/openshift.local.config
# run it!
docker run -d --name "origin" \
--privileged --pid=host --net=host --restart=always \
-v /:/rootfs:ro \
-v /var/run:/var/run:rw \
-v /sys:/sys \
-v /var/lib/docker:/var/lib/docker:rw \
-v /var/log:/var/log:rw \
-v /var/lib/origin/openshift.local.config:/var/lib/origin/openshift.local.config:rw \
-v /var/lib/origin/openshift.local.etcd:/var/lib/origin/openshift.local.etcd:rw \
-v /var/lib/origin/openshift.local.volumes:/var/lib/origin/openshift.local.volumes:rslave \
openshift/origin:v1.4.1 start --master-config=/var/lib/origin/openshift.local.config/master/master-config.yaml --node-config=/var/lib/origin/openshift.local.config/node-localhost.localdomain.localdomain/node-config.yaml
# ... it's running, but it's not functional yet...
# Download some image stream and database templates.
yum install -y unzip
curl -o /usr/local/src/origin.zip https://codeload.github.com/openshift/origin/zip/master
unzip /usr/local/src/origin.zip -d /usr/local/src/
docker exec -i origin oc create -f /rootfs/usr/local/src/origin-master/examples/image-streams/image-streams-centos7.json -n openshift
docker exec -i origin oc create -f /rootfs/usr/local/src/origin-master/examples/db-templates -n openshift
# this is lazy...
sleep 10
# Nothing's going to work without a docker registry...
docker exec -i origin oadm registry
# If you want applications exposed to the public, you're
# going to need routers, and a service account for the routers.
echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' > /tmp/router_account.json
docker exec -i origin oc create -f /rootfs/tmp/router_account.json
docker exec -i origin oadm policy add-scc-to-user hostnetwork -z router
docker exec -i origin oadm router --service-account=router
rm -f /tmp/router_account.json
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment