【问题标题】:"Failure talking to yum: Cannot find a valid baseurl for repo: remi"“与 yum 交谈失败:找不到 repo 的有效 baseurl:remi”
【发布时间】:2021-01-04 13:36:09
【问题描述】:

我正在使用下面的 ansible 脚本在 centOS 中安装 php-fpm 模块,但无法找出错误。

---
- hosts: all
  become: yes
  tasks:

    - name: download remi release repo for php
      get_url:
            url: http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
            dest: /tmp/remi-release-6.rpm

      tags: php-fpm

    - name: install remi repo
      shell: /bin/rpm -Uvh /tmp/remi-release-6.rpm
      register: remi_repo_result
      failed_when: "'conflict' in remi_repo_result.stderr"
      tags: php-fpm

    - name: enable remi repo
      ini_file: dest=/etc/yum.repos.d/remi.repo
          section=remi
          option=enabled
          value=1

    - name: install php-fpm and its deps
      yum: name={{item}} state=present
      with_items:
      - php
      - php-fpm
      tags: php-fpm

    - name: backup default php configuration
      shell: /bin/cp /etc/php.ini /etc/php.default.ini creates=/etc/php.default.ini
      tags: php-fpm

    - name: display php errors when not in production
      ini_file: dest=/etc/php.ini
         section=PHP
         option=display_errors
         value=On
      when: env is defined and env != "production"
      notify:
      - restart php-fpm
      tags: php-fpm

    - name: do not show php errors when in production
      ini_file: dest=/etc/php.ini
          section=PHP
          option=display_errors
          value=Off
      when: env is defined and env == "production"
      notify:
      - restart php-fpm
      tags: php-fpm

    - name: backup default php-fpm configuration
      shell: /bin/cp /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.default creates=/etc/php-fpm.d/www.conf.default
      tags: php-fpm

    - name: change php-fpm to listen on socket
      ini_file: dest=/etc/php-fpm.d/www.conf
          section=www
          option=listen
          value=/var/run/php-fpm/php-fpm.sock
      notify:
      - restart php-fpm
      tags: php-fpm

    - name: php-fpm listen mode should always be 0666
      ini_file: dest=/etc/php-fpm.d/www.conf
          section=www
          option=listen.mode
          value=0666
      notify:
      - restart php-fpm
      tags: php-fpm

    - name: change php-fpm user
      ini_file: dest=/etc/php-fpm.d/www.conf
          section=www
          option=user
          value=nginx
      notify:
      - restart php-fpm
      tags: php-fpm

    - name: change php-fpm group
      ini_file: dest=/etc/php-fpm.d/www.conf
          section=www
          option=group
          value=nginx
      notify:
      - restart php-fpm
      tags: php-fpm

    - name: start php-fpm
      service: name=php-fpm state=running enabled=yes
      tags: php-fpm

我在任务“install php-fpm and its deps”中收到以下错误

失败:[127.0.0.1] (item=[u'php', u'php-fpm']) => {"ansible_loop_var": "item", "changed": false, "item": [" php", "php-fpm"], "msg": "与 yum 交谈失败:找不到 repo 的有效 baseurl:remi"}

有人可以帮忙解决这个问题吗?

【问题讨论】:

  • 1/ EL-6 已死亡,几周前已达到 EOL。顺便说一句,无法复制...
  • 确保您使用的是正确的配置包,参见rpms.remirepo.net/wizard,还有EPEL
  • 你查看/etc/yum.repos.d/remi.repo的内容了吗?错误似乎表明baseurl 没有[remi] repo。

标签: ansible centos7


【解决方案1】:

注意:下面的大部分内容都是从疯狂的猜测中推断出来的,因为您没有提供相关任务的完整和详细的运行,也没有提供运行剧本所针对的目标的变量值。

上面的剧本有几个问题,最明显和最相关的一个是

    - name: install remi repo
      shell: /bin/rpm -Uvh /tmp/remi-release-6.rpm
      register: remi_repo_result
      failed_when: "'conflict' in remi_repo_result.stderr"
      tags: php-fpm

可能不会失败,尽管命令有错误

并且由于您没有在下一个 ini_file 任务中使用 create: false,因此仍将创建 /etc/yum.repos.d/remi.repo 仅包含

[remi]
enabled=1

(为此,我当然假设env 未设置或与production 不同)

从那里,您收到的消息非常连贯,因为实际上没有 repo remi 的基本 URL。

您可能需要考虑的其他一些注意事项:

  1. 您可以使用yum 模块安装远程rpm,方法是将url 直接传递为name
  2. 你不应该循环yum模块:直接在name属性中传递包列表(见doc
  3. 不要将cp 与shell 一起使用,将copy 模块与remote_src: true 一起使用
  4. 使用 yaml 语法而不是 ini 样式的快捷语法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 2019-12-07
    • 2015-02-01
    • 1970-01-01
    • 2014-03-01
    • 1970-01-01
    相关资源
    最近更新 更多