diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000000000000000000000000000000000000..24e9420cc22f06973576369c0ae680c218f2bf75
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,77 @@
+image:
+  name: python:3.6
+
+variables:
+  PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
+  ANSIBLE_REMOTE_TMP: "/tmp"
+  PKR_VAR_flavor: "m1.small"
+  PKR_VAR_source_image: "CentOS-7-x86_64-GenericCloud-2009"
+  PKR_VAR_floating_ip_network: "uab-campus"
+  PKR_VAR_security_groups: '["ssh-secgrp"]'
+  PKR_VAR_skip_create_image: "false"
+  PKR_VAR_ssh_username: "centos"
+  PKR_VAR_networks: '["7ac7d980-20bc-4e53-8528-6809e139fdcc"]'
+  PKR_VAR_build_instance_name: "ood-${CI_COMMIT_SHORT_SHA}"
+
+cache:
+  paths:
+    - bin/
+    - .cache/pip
+    - venv/
+    - CRI_XCBC/
+
+stages:
+  - build
+
+setup_environment:
+  stage: build
+  tags:
+    - build
+  script:
+    - >
+      if [ ! -f $CI_PROJECT_DIR/bin/packer ]; then
+        wget https://releases.hashicorp.com/packer/1.8.3/packer_1.8.3_linux_amd64.zip
+        unzip packer_1.8.3_linux_amd64.zip -d bin
+        rm -vf *.zip
+      fi
+    - $CI_PROJECT_DIR/bin/packer --version
+    - python --version
+    - python3 -m venv venv
+    - source venv/bin/activate
+    - pip install --upgrade pip
+    - pip install s3cmd ansible
+    - >
+      if cd CRI_XCBC; then
+        git checkout uab-prod; git pull;
+        git fetch origin '+refs/pull/*/head:refs/remotes/origin/pr/*';
+        cd ..;
+      else
+        git clone https://github.com/uabrc/CRI_XCBC.git;
+      fi
+    - s3cmd get --force --host=$AWS_HOST --host-bucket=$AWS_HOST s3://ood-config/group_vars/all CRI_XCBC/group_vars/all
+    - s3cmd get --force -r --host=$AWS_HOST --host-bucket=$AWS_HOST s3://cheaha-cloud-ansible-files/ ansible/files/
+
+validate:
+  stage: build
+  needs:
+    - setup_environment
+  tags:
+    - build
+  script:
+    - source venv/bin/activate
+    - $CI_PROJECT_DIR/bin/packer validate openstack
+
+build_image:
+  stage: build
+  needs:
+    - validate
+  tags:
+    - build
+  script:
+    - "sed -i 's/hosts:.*$/hosts: default/' CRI_XCBC/ood-packer.yaml"
+    - cat CRI_XCBC/ood-packer.yaml
+    - source venv/bin/activate
+    - sed -i 's/\(\"--extra-vars\)/\"-vvv\", \1/' openstack/nodeimage.pkr.hcl
+    - sed -i 's/inventory_file.*/extra_arguments=[\"-vvv\"]/' openstack/nodeimage.pkr.hcl
+    - cat openstack/nodeimage.pkr.hcl
+    - $CI_PROJECT_DIR/bin/packer build openstack