ansible版本2.7.10中没有可用的软件包匹配

时间:2019-05-14 15:10:42

标签: ansible

不能通过ansible在虚拟机中安装软件包。错误:没有匹配的软件包

---
- hosts: webservers
  remote_user: root
  #tasks:
  # - name: test connection
  #   ping:
  #   remote_user: 192.168.33.10
  #sudo: yes
  tasks:
    #- name: make sure apache is running
    #  service: name=httpd state=running
    - name: General | Instalacion de paquetes requeridos.

      action: apt pkg={{ item }} state=present
      with_items:
         -unzip
         -mysql-server
         -mysql-client
         -apache2
         -php-mysql
         -php-apc
         -php-xmlrpc
         -php-soap
         -php-gd
         -php
         -python-mysqldb

##
# Configuracion de Apache2
##

    - name: Apache2 | Habilitar módulos
      action: command a2enmod rewrite vhost_alias

##
# Reinicio de servicios
##

    - name: Restart Apache
      action: service name=apache2 state=restarted

是否还有另一种选择,或者我怎么知道哪些软件包使用了',我尝试一次安装几个软件包,但也失败了。

完整的错误是:

播放[网络服务器] *********************************************** *******************

任务[聚会事实] ********************************************** *************** 好的:[192.168.33.10]

任务[常规|重新安装paquetes。] *************************** [DEPRECATION WARNING]:使用循环通过时仅调用“ apt”一次 squash_actions已弃用。而不是使用循环来提供多个项目 并指定pkg: "{{ item }}",请使用pkg: '-unzip -mysql-server -mysql-client -apache2 -php-mysql -php-apc -php-xmlrpc -php-soap -php-gd -php -python-mysqldb'并删除循环。此功能将在版本中删除 2.11。可以通过设置禁用弃用警告 deprecation_warnings = ansible.cfg中为False。 失败:[192.168.33.10](item = [u'-unzip -mysql-server -mysql-client -apache2 -php-mysql -php-apc -php-xmlrpc -php-soap -php-gd -php -python- mysqldb'])=> {“ changed”:false,“ item”:[“-解压缩-mysql-server -mysql-client -apache2 -php-mysql -php-apc -php-xmlrpc -php-soap -php- gd -php -python-mysqldb“],” msg“:”没有匹配的软件包-unzip -mysql-server -mysql-client -apache2 -php-mysql -php-apc -php-xmlrpc -php-soap -php- gd -php -python-mysqldb'可用“}     要重试,请使用:--limit @ / home / guillermo / Documentos / vagrant-ansible / playbook.retry

PLAY RECAP ********************************************* ************************ 192.168.33.10:ok = 1更改= 0不可达= 0失败= 1

1 个答案:

答案 0 :(得分:0)

您的YAML无效。 YAML列表项用以下符号表示:

-<space><item>

您有:

-<item>

这只是一个文字字符串。如果查看错误,您会看到apt试图安装名称为-unzip-mysql-server等的软件包,这些软件包当然不存在。您需要这样编写任务:

- name: General | Instalacion de paquetes requeridos.
  action: apt pkg={{ item }} state=present
  with_items:
     - unzip
     - mysql-server
     - mysql-client
     - apache2
     - php-mysql
     - php-apc
     - php-xmlrpc
     - php-soap
     - php-gd
     - php
     - python-mysqldb

但是,如果您再看一下该错误,则会看到:

  

在使用通过squash_actions的循环时仅调用一次“ apt”已被弃用...

似乎您已经在根据过时的信息学习Ansible。您应该现代化语法,使其看起来像这样:

- name: General | Instalacion de paquetes requeridos.
  apt:
    name: "{{ packages }}"
    state: installed
  vars:
    packages:
       - unzip
       - mysql-server
       - mysql-client
       - apache2
       - php-mysql
       - php-apc
       - php-xmlrpc
       - php-soap
       - php-gd
       - php
       - python-mysqldb