Technology

Drone on CoreOS for CI/CD

I'm working on a moving my CI/CD platform to Drone.  As usual, I'm behind a corporate firewall

1. Install CoreOS

This is just a standard CoreOS image on OpenStack

2. Configure Proxy

sudo mkdir -p /etc/systemd/system/docker.service.d
echo "[Service]
Environment="HTTP_PROXY=http://<internal proxy address>" >>/etc/systemd/system/docker.service.d/http-proxy.conf
Now update to get latest settings so Docker works
systemctl daemon-reload
systemctl restart docker

3. Get Drone

docker pull drone/drone:0.4

4. Register application in your github account.

Since I'm using an enterprise version of github, I went into the organization and created an oath account githuboath

5. Create a configuration file with the environment

I created /vol/dronerc.  My /vol directory is a persistent storage volume mounted to my vm.  The contents are as follows:
DEBUG=FALSE
REMOTE_CONFIG=https://github3.cisco.com?client_id=..&client_secret=...&open=true
REMOTE_DRIVER=github
PLUGIN_FILTER=plugins/* quay.cisco.com/ciscopipeline/*
DATABASE_DRIVER=sqlite3
DATABASE_CONFIG=/var/lib/drone/drone.sqlite

6. Start up Drone

docker run --volume /vol/drone:/var/lib/drone \
--volume /var/run/docker.sock:/var/run/docker.sock \
--env-file /vol/dronerc --restart=always \
--publish=80:8000 --detach=true --name=drone \
drone/drone:0.4
Now we can go to our page and open up our Drone app. You can see that I mapped the default 8000 port to port 80 so that I can access it directly from my server, which is hosted internally at 10.93.234.142