Gitlab pipeline error With CD/CI for AWS ec2 debian instance: This job is stuck because you don't have any active runners online

I want to create a CI/CD pipeline between gitlab and aws ec2 deployment. My repository is nodejs/express web server project.

And I created a gitlab-ci.yaml

image: node:latest

cache:
  paths:
    - node_modules/

stages:
  - build
  - test
  - staging
  - openMr
  - production


before_script:  
  - apt-get update -qq && apt-get install

Build:
  stage: build
  tags:
    - node
  before_script: 
    - yarn config set cache-folder .yarn
    - yarn install 
  script:
    - npm run build

Test:
  stage: test
  tags:
  - node
  before_script: 
    - yarn config set cache-folder .yarn
    - yarn install --frozen-lockfile
  script:
    - npm run test


Deploy to Production:
  stage: production
  tags:
    - node
  before_script:
    - mkdir -p ~/.ssh
    - echo -e "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
    - chmod 600  ~/.ssh/id_rsa
    - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'   
  script:     
    - bash ./gitlab-deploy/.gitlab-deploy.prod.sh   
  environment:     
    name: production     
    url: http://ec2-url.compute.amazonaws.com:81   

When I push a new commit pipeline failed on build step. And I get a warning as :

This job is stuck because you don't have any active runners online or available with any of these tags assigned to them: node

I checked my runner on gitlab settings/CI/CD

enter image description here

enter image description here

After that I checkked server

[email protected]:~$ gitlab-runner
 statusRuntime platform                                    arch=amd64 os=linux pid=18787 revision=98daeee0 version=14.7.0
FATAL: The --user is not supported for non-root users 

Upvotes: 2

Views: 630

Answers (1)

JFWenisch
JFWenisch

Reputation: 420

You need to remove the tag node from your jobs. Runner tags are used to define which runner should pick up your jobs (https://docs.gitlab.com/ee/ci/runners/configure_runners.html#use-tags-to-control-which-jobs-a-runner-can-run). As there is no runner available which supports the tag node, your job gets stuck.

It doesn't look like your pipeline has any special requirements so you can just remove the tag so it can be picked up by every runner.

The runner that can be seen in your screenshot supports the tag shop_service_runner. So another option would be to change the tag node to shop_service_runner which would lead to this runner (and every runner with the same tags) being able to pick up this job.

Upvotes: 1

Related Questions