We would like to automate installation of gitlab runner using chef. we are successful with it. Now, the Issue is regarding registering gitlab runner with chef resource. we have gone through chef resource. and official cookbook https://gitlab.com/chef-platform/gitlab-ci-runner but looks a bit complicated for us. we wonder if we have any pre-built chef resources to register gitlab runner. if yes, can we know how we can register with a example resource. Additionally, I have tried looking at resource https://github.com/TYPO3-cookbooks/site-gitlabcirunnertypo3org/blob/master/recipes/default.rb

name = "#{node['fqdn']}-docker"
  gitlab_ci_runner name do
        registration_token: registration_token,
        url: node['site-gitlabcirunnertypo3org']['gitlab_url'],
        executor: 'docker',
        :'docker-image' => 'docker:1',
        :'tag-list' => ['docker']

But I dont understand how it is registering the runner. Thanks for help!

1 Answer 1


Your second link just use the official cookbook. This official cookbook still uses the LWRP syntax, so you need to check in the provider directory for the resource action code -- which for register is basically just two execute commands (extract from the file linked above):

converge_by("Register runner #{new_resource.description}") do
  execute "#{env} gitlab-runner register --non-interactive #{options}"
  # giving time to gitlab-ci to manage the request
  execute "sleep #{new_resource.sleep}"

So mostly, your exemple ends up calling the gitlab-runner register command with the options defined in the options hash (with a little transformation of the hash into command parameters).

There's no 'core' chef resource to register gitlab runners out of using an execute resource to run the command.

A basic example of this resource is present in the cookbook Readme:

gitlab_ci_runner 'my runner' do
    registration_token: '1234567890',
    url: 'http://gitlab-ci.myinstance'
  • In my cookbook I have added providers/default.rb completely and gitlab_ci_runner resource from official cookbook. But still it can able to find the resource for gitlab_ci_runner. ` NoMethodError ------------- undefined method gitlab_ci_runner' for cookbook: gitlab_runner, recipe: install_runner :Chef::Recipe is there anything do we need to add Thanks!
    – DevOps
    Commented Sep 15, 2018 at 0:31
  • That's not the way to use another cookbook, you need to get this cookbook, I recommend you to follow the tutorials at learn.chef.io as it's too long to fit in a comment
    – Tensibai
    Commented Sep 15, 2018 at 6:57
  • I tried by adding providers from official cookbook but there is some issue with it.(May be some thing from my side). I have included recipe[gitlab-ci-runner::register] and added register recipe to my recipe and worked well. Thanks@ Tensibai
    – DevOps
    Commented Sep 20, 2018 at 18:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.