diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 5a3722a4492967c3b844276e40dab87e28cf190c..cccac1c9f6b9eaf8d5d6f0bfb5ef354bcc26f8ec 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -160,6 +160,41 @@ build_ssh_proxy_image:
     - if: $PIPELINE_TARGET == "build" && $BUILD_TARGET == "ssh-proxy"
       when: always
 
+deploy_compute_node:
+  stage: deploy
+  environment:
+    name: $ENV
+  tags:
+    - build
+  script:
+    - openstack image set --accept $compute-${BUILD_DATE} || true
+    - FAILED=false
+    - |
+      cat > user_data.txt <<EOF
+      #!/bin/bash
+      cat >> /etc/NetworkManager/conf.d/90-dns-none.conf<<EEOF
+      [main]
+      dns=none
+      EEOF
+      systemctl reload NetworkManager
+      echo "$DEV_KEY" >> /root/.ssh/authorized_keys
+      ip route replace default via ${DEFAULT_GATEWAY_IP} dev eth0
+      git clone ${CI_REPOSITORY_URL} /tmp/${CI_PROJECT_NAME}
+      cd /tmp/${CI_PROJECT_NAME}
+      git checkout ${CI_COMMIT_REF_NAME}
+      cat >> ansible/hosts<<EEOF
+      [$ENV]
+      127.0.0.1
+      EEOF
+      ansible-playbook -c local -i ansible/hosts --extra-vars="$EXTRA_VARS" ansible/cluster.yml | tee -a /tmp/ansible.log
+      rm -rf /tmp/${CI_PROJECT_NAME}
+      EOF
+    - |
+
+  rules:
+    - if: $PIPELINE_TARGET == "deploy"
+      when: always
+
 deploy_http_proxy_node:
   stage: deploy
   environment: