yum安装ansible报错如何解决

简介: 本篇内容记录了yum安装ansible报错的解决方案。

文章参考:https://mirrors.tuna.tsinghua.edu.cn/help/epel/


前言:安装ansible出现如下错误:


Error: Package: python-paramiko-2.1.1-0.10.el7.noarch (epel)
           Requires: python-cryptography
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python-six
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: PyYAML
Error: Package: python-paramiko-2.1.1-0.10.el7.noarch (epel)
           Requires: python2-pyasn1
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python2-cryptography
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python-jinja2
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python-setuptools
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest


一、报错信息:


[root@ansible ~]# yum install -y ansible
Loaded plugins: fastestmirror
Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * epel: mirrors.tuna.tsinghua.edu.cn
Resolving Dependencies
--> Running transaction check
---> Package ansible.noarch 0:2.9.21-1.el7 will be installed
--> Processing Dependency: PyYAML for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-httplib2 for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-jinja2 for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-paramiko for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-setuptools for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-six for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python2-cryptography for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python2-jmespath for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: sshpass for package: ansible-2.9.21-1.el7.noarch
--> Running transaction check
---> Package ansible.noarch 0:2.9.21-1.el7 will be installed
--> Processing Dependency: PyYAML for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-jinja2 for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-setuptools for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python-six for package: ansible-2.9.21-1.el7.noarch
--> Processing Dependency: python2-cryptography for package: ansible-2.9.21-1.el7.noarch
---> Package python-paramiko.noarch 0:2.1.1-0.10.el7 will be installed
--> Processing Dependency: python-cryptography for package: python-paramiko-2.1.1-0.10.el7.noarch
--> Processing Dependency: python2-pyasn1 for package: python-paramiko-2.1.1-0.10.el7.noarch
---> Package python2-httplib2.noarch 0:0.18.1-3.el7 will be installed
---> Package python2-jmespath.noarch 0:0.9.4-2.el7 will be installed
---> Package sshpass.x86_64 0:1.06-1.el7 will be installed
--> Finished Dependency Resolution
Error: Package: python-paramiko-2.1.1-0.10.el7.noarch (epel)
           Requires: python-cryptography
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python-six
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: PyYAML
Error: Package: python-paramiko-2.1.1-0.10.el7.noarch (epel)
           Requires: python2-pyasn1
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python2-cryptography
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python-jinja2
Error: Package: ansible-2.9.21-1.el7.noarch (epel)
           Requires: python-setuptools
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest


二、如何解决


1、重装虚拟机


重装一台虚拟机,保证虚拟机可以上网,可以选择桥接模式网卡


微信图片_20220510122932.png


2、修改yum源


建议先备份 /etc/yum.repos.d/ 内的文件(CentOS 7 及之前为 CentOS-Base.repo,CentOS 8 为CentOS-Linux-*.repo)


然后编辑 /etc/yum.repos.d/ 中的相应文件,在 mirrorlist= 开头行前面加 # 注释掉;并将 baseurl= 开头行取消注释(如果被注释的话),把该行内的域名(例如mirror.centos.org)替换为 mirrors.tuna.tsinghua.edu.cn。


以上步骤可以被下方的命令一步完成


sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
         -e 's|^#baseurl=http://mirror.centos.org|baseurl=https://mirrors.tuna.tsinghua.edu.cn|g' \
         -i.bak \
         /etc/yum.repos.d/CentOS-*.repo


注意其中的*通配符,如果只需要替换一些文件中的源,请自行增删。


注意,如果需要启用其中一些 repo,需要将其中的 enabled=0 改为 enabled=1。


最后,更新软件包缓存


sudo yum makecache


3、使用EPEL源


yum install epel-release
当前tuna已经在epel的官方镜像列表里,所以不需要其他配置,mirrorlist机制就能让你的服务器就近使用tuna的镜像。如果你想强制 你的服务器使用tuna的镜像,可以修改/etc/yum.repos.d/epel.repo,将mirrorlist和metalink开头的行注释掉。
接下来,取消注释这个文件里baseurl开头的行,并将其中的http://download.fedoraproject.org/pub替换成https://mirrors.tuna.tsinghua.edu.cn。
可以用如下命令自动替换:(来自 https://github.com/tuna/issues/issues/687)
sed -e 's!^metalink=!#metalink=!g' \
    -e 's!^#baseurl=!baseurl=!g' \
    -e 's!//download\.fedoraproject\.org/pub!//mirrors.tuna.tsinghua.edu.cn!g' \
    -e 's!http://mirrors\.tuna!https://mirrors.tuna!g' \
    -i /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel-testing.repo


4、安装ansible


yum install -y ansible
.....
Dependency Installed:
  PyYAML.x86_64 0:3.10-11.el7                                                            
  libyaml.x86_64 0:0.1.4-11.el7_0                                                        
  python-babel.noarch 0:0.9.6-8.el7                                                      
  python-backports.x86_64 0:1.0-8.el7                                                    
  python-backports-ssl_match_hostname.noarch 0:3.5.0.1-1.el7                             
  python-cffi.x86_64 0:1.6.0-5.el7                                                       
  python-enum34.noarch 0:1.0.4-1.el7                                                     
  python-idna.noarch 0:2.4-1.el7                                                         
  python-ipaddress.noarch 0:1.0.16-2.el7                                                 
  python-jinja2.noarch 0:2.7.2-4.el7                                                     
  python-markupsafe.x86_64 0:0.11-10.el7                                                 
  python-paramiko.noarch 0:2.1.1-9.el7                                                   
  python-ply.noarch 0:3.4-11.el7                                                         
  python-pycparser.noarch 0:2.14-1.el7                                                   
  python-setuptools.noarch 0:0.9.8-7.el7                                                 
  python-six.noarch 0:1.9.0-2.el7                                                        
  python2-cryptography.x86_64 0:1.7.2-2.el7                                              
  python2-httplib2.noarch 0:0.18.1-3.el7                                                 
  python2-jmespath.noarch 0:0.9.4-2.el7                                                  
  python2-pyasn1.noarch 0:0.1.9-7.el7                                                    
  sshpass.x86_64 0:1.06-2.el7                                                            
Complete!


5、测试


[root@localhost ~]# ansible --version
ansible 2.9.21
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.5 (default, Nov 16 2020, 22:23:17) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]


相关文章
|
10天前
|
存储 缓存 Linux
【Linux】另一种基于rpm安装yum的方式
通过本文的方法,您可以在离线环境中使用RPM包安装YUM并进行必要的配置。这种方法适用于无法直接访问互联网的服务器或需要严格控制软件源的环境。通过配置本地YUM仓库,确保了软件包的安装和更新可以顺利进行。希望本文能够为您在特定环境中部署YUM提供实用的指导。
70 0
|
2月前
|
关系型数据库 MySQL Linux
Linux 安装 mysql【使用yum源进行安装】
这篇文章介绍了在Linux系统中使用yum源安装MySQL数据库的步骤,包括配置yum源、安装MySQL服务、启动服务以及修改root用户的默认密码。
Linux 安装 mysql【使用yum源进行安装】
|
1月前
|
Unix Linux Go
Linux 使用Yum安装Go和配置环境
Linux 使用Yum安装Go和配置环境
|
3月前
|
关系型数据库 MySQL Linux
在CentOS上使用yum安装与使用MySQL
在CentOS操作系统上使用yum包管理器安装和配置MySQL数据库的详细步骤,包括下载MySQL的yum源配置、安装MySQL服务、启动和停止服务、设置开机自启动、获取临时密码、修改root用户密码、授权用户以及处理相关问题。同时,文章还包含了一些操作的截图,帮助用户更直观地理解安装和配置过程。
914 0
在CentOS上使用yum安装与使用MySQL
|
3月前
|
Oracle Java 关系型数据库
yum安装指定版本的openJDK
yum安装指定版本的openJDK
|
3月前
|
存储 Ubuntu Linux
在Ubuntu 14.04上安装和配置Ansible的方法
在Ubuntu 14.04上安装和配置Ansible的方法
35 1
|
3月前
|
Linux Docker 容器
在CentOS操作系统上使用yum安装/使用/卸载Docker容器引擎
在CentOS操作系统上安装、配置、使用和卸载Docker容器引擎的详细步骤,包括配置Docker镜像加速的方法。
346 0
|
3月前
|
安全 Java 应用服务中间件
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
如何通过 Yum 在 CentOS 7 上安装 Apache Tomcat 7
201 0
|
3月前
|
JSON 运维 Ubuntu
在Ubuntu 18.04上安装和配置Ansible的方法
在Ubuntu 18.04上安装和配置Ansible的方法
59 0
|
3月前
|
JSON 运维 Linux
在CentOS 7上安装和配置Ansible的方法
在CentOS 7上安装和配置Ansible的方法
158 0
下一篇
无影云桌面