Running Ansible playbook with Jenkins plugin ... now need to add git

40 views
Skip to first unread message

Kiran Kumar

unread,
May 2, 2020, 10:59:39 PM5/2/20
to Ansible Project
Hi,

I have a ansible server, which i use mainly to manage ntp client/dns client/time zone/create users/install software etc on various linux servers..  so no development to say, just as "infrastructure as code" 

On same server i installed Jenkins & on Jenkins i installed ansible plugin. Now i have a UI ( Front end ) for my playbooks. So Jenkins runs the playbooks.  

So far so good.

Now i am scratching  my head & doing google ( and various online training ) how do i ensure all those playbook & roles etc to  add to GIT & then manage with GIT.

This is what i did so far 

  • Install git plugin of Jenkins on same server 
  • Install git server on same server, now this server acts as Jenkins+Ansible + Git 
  • Test my git server  by creating a project on  it & testing with a work-station 


All stuff on my ansible is under  /etc/ansible  ie playbook in /etc/ansible/playbooks , roles in /etc/ansible/roles ,  inventory at /etc/ansible/hosts 

Please suggest  ( any good blog/web page/book ) or otherwise any suggestions will help

Thanks
Kiran

Dick Visser

unread,
May 3, 2020, 2:48:55 AM5/3/20
to ansible...@googlegroups.com
This looks like a question about how to use git, in combination with Jenkins, neither of which this list is supporting. You might get more response from a support forum on Jenkins.

--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/826bc85c-41b5-4d86-86f3-88dfb82bf93f%40googlegroups.com.
--
Sent from a mobile device - please excuse the brevity, spelling and punctuation.

Vivek Kothawale

unread,
May 3, 2020, 2:56:53 AM5/3/20
to ansible...@googlegroups.com
Hi

To achieve the above mentioned objective you can wirte Jenkins file and package all the files using fpm and deploy that package in jenkins server and then you can run playbooks using ansible jenkins by providing path to playbook.

Thanks and Regards,
Vivek

Kiran Kumar

unread,
May 6, 2020, 12:00:33 AM5/6/20
to ansible...@googlegroups.com
Thanks Vivek 

You received this message because you are subscribed to a topic in the Google Groups "Ansible Project" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ansible-project/_pGJftUckVk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ansible-proje...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/CAA420E9FDhOJLro1nDR2%3Djtv3VnZbKTgPv-y7Y6_px-U8sgRCg%40mail.gmail.com.

Nicola Limongi

unread,
May 6, 2020, 12:30:08 PM5/6/20
to Ansible Project
Hi,
first thing you should version all your playbooks and roles in a git repository.
Then you tell Jenkins to pull such git repository and run the playbook you want to.
Be sure that on the Jenkins host you have installed all the required software: ansible, git.

You can create a Jenkinsfile at the root of your project that describes the steps that Jenkins has to perform in order to run your playbook:
Example for my Jenkinsfile that does something on my aws instances:

pipeline {
    agent any

    environment {
        AWS_ID = credentials("aws_credentials")
        AWS_ACCESS_KEY_ID = "${env.AWS_ID_USR}"
        AWS_SECRET_ACCESS_KEY = "${env.AWS_ID_PSW}"

        ANSIBLE_VAULT_PASSWORD_FILE = credentials("ansible-vault-password-file")

        SSH_PRIVATE_KEY_FILE = credentials("ssh-private-key-file")
    }

   

    stages {
        stage("prepare virtualenv") {
                steps {
                    withPythonEnv('python') {
                        sh """
                            pip install -r ansible/pip/pip-requirements.txt
                            """
                    }
                }
        }

        stage("run playbook") {
                steps {
                    withPythonEnv('python') {
                        sh """
                            cd ansible
                            ansible-playbook my-playbook.yml --extra-vars "target=targethost" --private-key $SSH_PRIVATE_KEY_FILE --vault-password-file $ANSIBLE_VAULT_PASSWORD_FILE
                            """
                    }
                }
        }
    }
}
Thanks Vivek 

To unsubscribe from this group and stop receiving emails from it, send an email to ansible...@googlegroups.com.
--
Sent from a mobile device - please excuse the brevity, spelling and punctuation.

--
You received this message because you are subscribed to the Google Groups "Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ansible...@googlegroups.com.

--
You received this message because you are subscribed to a topic in the Google Groups "Ansible Project" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/ansible-project/_pGJftUckVk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to ansible...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages