我想自动安装jenkins,为此我使用ansible . 我正在尝试用它的repo和gpg键安装jenkins . 这是我的剧本
---
- hosts: "{{ HOST }}"
become: true
become_user: root
gather_facts: true
become_method: sudo
vars:
temp_folder: /tmp
tasks:
- name: Include variables
include_vars:
dir: '../vars'
extensions: ['yml']
- name: Install java
yum:
name: java
state: present
update_cache: yes
become: true
become_user: root
- name: Add Jenkins Repository | Add Sources List
yum_repository:
name: jenkins
description: jenkins
baseurl: "{{ jenkins_repo }}"
gpgkey: "{{ jenkins_key }}"
gpgcheck: yes
become: true
become_user: root
- name: Install jenkins
yum:
name: jenkins
state: present
update_cache: yes
become_user : root
become: true
- name: Start Jenkins Service | Enable on Boot
service:
name: jenkins
state: started
enabled: yes
become: true
become_user: root
var文件中的值包含以下键: - ---
jenkins_key: https://pkg.jenkins.io/redhat/jenkins.io.key
jenkins_repo: https://pkg.jenkins.io/redhat/jenkins.repo
现在,当我执行playbook时,它会让我跟随错误 .
fatal: [atul-ec2]: FAILED! => {
"changed": false,
"failed": true,
"invocation": {
"module_args": {
"conf_file": null,
"disable_gpg_check": false,
"disablerepo": null,
"enablerepo": null,
"exclude": null,
"install_repoquery": true,
"installroot": "/",
"list": null,
"name": [
"jenkins"
],
"skip_broken": false,
"state": "present",
"update_cache": true,
"validate_certs": true
}
},
"msg": "Failure talking to yum: failure: repodata/repomd.xml from jenkins: [Errno 256] No more mirrors to try.\nhttps://pkg.jenkins.io/redhat/jenkins.repo/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found"
}
但是当我试图手动添加jenkins repo时,它并没有给我任何错误 .
1 回答
baseurl
参数应该包含指向包含包和repodata
的URL的值 . 您提供的值是包含yum repo信息的文件 . 您需要从该文件中提取baseurl
并将其用作值 . 在你的redhat示例中,你的值应该是:当
jenkins_repo
变量与baseurl
参数一起使用时,将使用该目录中包含的repodata/repomod.xml
正确配置repo,就像在任务的yum_repository
模块中使用它一样 .