unable to connect to jenkins

I am getting below error when trying to connect to jenkins url using ansible_jenkins_info module

msg": “Unable to connect to Jenkins server, Unable to authenticate with any scheme:\nauth(kerberos) HTTPSConnectionPool(host=‘<jenkins.com>.‘, port=443): Max retries exceeded with url: /api/json (Caused by NewConnectionError(’<urllib3.connection.HTTPSConnection object at 0x7f4fcb26bd30>: Failed to establish a new connection: [Errno -2] Name or service not known’,))\nauth(basic) HTTPSConnectionPool(host=’ <jenkins.com>. ‘, port=443): Max retries exceeded with url: /api/json (Caused by NewConnectionError(’<urllib3.connection.HTTPSConnection object at 0x7f4fcb26b9e8>: Failed to establish a new connection: [Errno -2] Name or service not known’,))”,

This indicates some DNS resolution issue on the system where this task executes.

thankyou, I have some typos, fixed that issue. BUt in the same playbook I trying to use loops and access both the urls with respective user and password and print the job info, but only one url response is working. other one is failing with error. if I remove the working url and try with accessing the failed user details, it works. I believe some thing I might have missed in the loop.

Is your Jenkins services hosted on jenkins.com ? The error indicate that’s the host you are trying to connect to.

Hi Narmada,

I would suggest you to remove include_vars if you want to read the variables from files. Instead of that you can simplify the task like -

vars:
urls:
- url: url1
username: username1
password_file: group_vars/password1.yml
- url: url2
username: username2
password_file: group_vars/password2.yml
tasks:
- debug:
msg: "{{ (lookup('file', url_item.password_file )|from_yaml).password }}"
loop: "{{ urls }}"
loop_control:
loop_var: url_item

I am assuming your password*.yml file looks like this =

# cat group_vars/password1.yml
---
password: sample1

That’s right, that how my password file looks like
Let me try your suggestion and update you.
Thankyou

Also I would I use that password item in the below play

any suggestions how I can use the password from this debug as variable in next play

  • debug:
    msg: “{{ (lookup(‘file’, url_item.password_file )|from_yaml).password }}”

Hi Narmada,

I just showed you an example. You can directly use jekins_job_info in a similar way.

Thanks bunch, I used this for token: “{{ (lookup(‘file’, url_item.password_file )|from_yaml).password }}” it worked…

Abhijeet, I need one more help, from the above playbook I am trying to check if the job exists on 2 jenkins urls.
Now, I am trying to configure job if the doesn’t exist on any of the jenkins, for this I have to look for job if exists. I am little confused how to check the condition.

I am having hard time getting the when condition work
I have couple of application names have 2 separate jenkins urls. My playbook has to check if the job exists on both the urls and then create the new job. I am successful until checking and getting the data if the job exists or not. NOw when trying to write the when condition I am failing.
scenario 1 : I have 2 repos, and 2 urls . in this case the job exists on one of the jenkins and then it has to skip the next step creating the new jenkins job , I need to get when condition working.
“msg”: “Job URLs: [‘https://test.com/job/repo1.teamCI/’]” “msg”: “Job URLs:
scenario 2: in this case the job doesn’t exist on any of the url, then it should go and create the job on specific jenkins which I mentioned in next play

“msg”: “Job URLs:
“msg”: “Job URLs:

TASK [Display Jobs] ************************************************************
ok: [localhost] => (item={‘changed’: False, ‘jobs’: , ‘invocation’: {‘module_args’: {‘glob’: 'repo1.', ‘url’: ‘https://url1.com’, ‘user’: ‘account’, ‘token’: ‘tokenvalue’, ‘validate_certs’: False, ‘name’: None, ‘color’: None, ‘password’: None}}, ‘failed’: False, ‘item’: [{‘url’: ‘https://url1.com’, ‘username’: ‘account’, ‘password_file’: ‘group_vars/password1.yml’}, ‘repo1’], ‘ansible_loop_var’: ‘item’}) => {
“ansible_loop_var”: “item”,
“item”: {
“ansible_loop_var”: “item”,
“changed”: false,
“failed”: false,
“invocation”: {
“module_args”: {
“color”: null,
“glob”: "repo1.
",
“name”: null,
“password”: null,
“token”: “VALUE_SPECIFIED_IN_NO_LOG_PARAMETER”,
“url”: “url”,
“user”: “acount”,
“validate_certs”: false
}
},
“item”: [
{
“password_file”: “group_vars/password1.yml”,
“url”: “https://url1.com”,
“username”: “account”
},
“release.sqls”
],
“jobs”:
},
“item.jobs”:
}

I am checking item.jobs attribute

If the job already exist

“item.jobs”: [ { “fullname”: “repo2”, “jobs”: , “name”: “repo2”, “url”: “https://url2/job/repo2/” }

Yea, I fixed this issue after posting it