无法从ansible安装jenkins

无法从ansible安装jenkins,jenkins,ansible,Jenkins,Ansible,我想自动安装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 includ

我想自动安装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文件中的值包含以下键:- ---

现在,当我执行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时,它不会给我带来任何错误。

参数
baseurl
应该包含一个指向包含包的URL和
repodata
的值。您提供的值用于包含yum repo信息的文件。您需要从该文件中提取
baseurl
,并将其用作值。在redhat示例中,您的值应为:

jenkins_repo: https://pkg.jenkins.io/redhat/

当在任务中的
yum\u repository
模块中使用
jenkins\u repo
变量时,将使用该目录中包含的
repodata/repomod.xml
正确配置repo。我知道这是一个相当老的线程

但是,作为一个公认的答案并不能真正解释为什么相关代码没有按预期工作,请在下面找到几个词

  • yum\u repositoryansible模块根据提供的属性创建.repo文件/定义
  • 问题中提供的jenkins_repo变量中的uri指向.repo文件/定义本身,因此在这种情况下使用yum_存储库是不合适的,如果希望使用使用此定义,则可以使用get_url模块
使用后者可能是更好的选择,尤其是在软件维护人员提供的情况下

jenkins_repo: https://pkg.jenkins.io/redhat/