ansible使用包管理模块

一般使用的包管理模块的RPM,和YUM

参数

必填

默认

选择

说明

Conf_file

No

YUM的配置文件

Disable_dbg_check

No

No

Yes/no

是否开启验证

Disablerepo

No

禁用的仓库

Enablerepo

No

启用的仓库

List

No

非幂等性命令

Name

Yes

包名称

State

No

Present

Present/installed

Latest/absent

Removed

是否插入(present,installed,latest),移除

(absent/removed)包

1.1 安装最新的包

[root@ansibleserver tmp]# ansible pythonserver -m yum -a "name=httpd state=latest"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"msg": "",

"rc": 0,

"results": [

"Loaded plugins: product-id, security, subscription-manager\nUpdating certificate-based repositories.\nSetting up Install Process\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.2.15-15.el6 will be installed\n-->
Processing Dependency: httpd-tools = 2.2.15-15.el6 for package: httpd-2.2.15-15.el6.x86_64\n--> Processing Dependency: apr-util-ldap for package: httpd-2.2.15-15.el6.x86_64\n--> Running transaction check\n---> Package apr-util-ldap.x86_64 0:1.3.9-3.el6_0.1
will be installed\n---> Package httpd-tools.x86_64 0:2.2.15-15.el6 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package           Arch      
Version                Repository            Size\n================================================================================\nInstalling:\n httpd             x86_64     2.2.15-15.el6          rhel-source-beta     808 k\nInstalling for dependencies:\n
apr-util-ldap     x86_64     1.3.9-3.el6_0.1        rhel-source-beta      15 k\n httpd-tools       x86_64     2.2.15-15.el6          rhel-source-beta      70 k\n\nTransaction Summary\n================================================================================\nInstall      
3 Package(s)\n\nTotal download size: 893 k\nInstalled size: 3.1 M\nDownloading Packages:\n--------------------------------------------------------------------------------\nTotal                                            25 MB/s | 893 kB     00:00     \nRunning
rpm_check_debug\nRunning Transaction Test\nTransaction Test Succeeded\nRunning Transaction\n\r  Installing : apr-util-ldap-1.3.9-3.el6_0.1.x86_64                         1/3 \n\r  Installing : httpd-tools-2.2.15-15.el6.x86_64                             2/3
\n\r  Installing : httpd-2.2.15-15.el6.x86_64                                   3/3 \nInstalled products updated.\n\nInstalled:\n  httpd.x86_64 0:2.2.15-15.el6                                                  \n\nDependency Installed:\n  apr-util-ldap.x86_64
0:1.3.9-3.el6_0.1   httpd-tools.x86_64 0:2.2.15-15.el6  \n\nComplete!\n"

]

}

查询之后发现已经安装,并且安装了最新版本

name表示需要安装的包名称,state为lastest,表示安装Apache的最新版本

1.2 移除包

[root@ansibleserver tmp]# ansible pythonserver -m yum -a "name=httpd state=absent"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"msg": "",

"rc": 0,

"results": [

"Loaded plugins: product-id, security, subscription-manager\nUpdating certificate-based repositories.\nSetting up Remove Process\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.2.15-15.el6 will be erased\n-->
Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package      Arch          Version              Repository                Size\n================================================================================\nRemoving:\n
httpd        x86_64        2.2.15-15.el6        @rhel-source-beta        2.9 M\n\nTransaction Summary\n================================================================================\nRemove        1 Package(s)\n\nInstalled size: 2.9 M\nDownloading Packages:\nRunning
rpm_check_debug\nRunning Transaction Test\nTransaction Test Succeeded\nRunning Transaction\n\r  Erasing    : httpd-2.2.15-15.el6.x86_64                                   1/1 \nInstalled products updated.\n\nRemoved:\n  httpd.x86_64 0:2.2.15-15.el6                                                 
\n\nComplete!\n"

]

}

移除安装包

1.3 指定repo来进行安装包

[root@ansibleserver tmp]# ansible pythonserver -m yum -a "name=httpd enablerepo=rhel state=present"

SSH password:

192.168.1.60 | FAILED >> {

"failed": true,

"msg": "Error setting/accessing repo rhel: Error getting repository data for rhel, repository not found"

}

在指定源的时候,使用enablerepo,注意这个名字是配置文件/etc/yum.repo.d/目录中文件的section的名称,如下所示:

[root@ansibleserver yum.repos.d]# cat rhel-source.repo |grep kel

[kel]

name=kel

baseurl=file:///tmp/kel

主要的就是使用这个repo的名字,section为[kel]

在上面的报错信息中,主要就是没有找到这个section

[root@ansibleserver ~]# ansible pythonserver -m yum -a "name=httpd enablerepo=kel state=present"

SSH password:

192.168.1.60 | success >> {

"changed": true,

"msg": "",

"rc": 0,

"results": [

"Loaded plugins: product-id, security, subscription-manager\nUpdating certificate-based repositories.\nSetting up Install Process\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.2.15-15.el6 will be installed\n-->
Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package         Arch             Version                   Repository     Size\n================================================================================\nInstalling:\n
httpd           x86_64           2.2.15-15.el6             kel           808 k\n\nTransaction Summary\n================================================================================\nInstall       1 Package(s)\n\nTotal download size: 808 k\nInstalled size:
2.9 M\nDownloading Packages:\nRunning rpm_check_debug\nRunning Transaction Test\nTransaction Test Succeeded\nRunning Transaction\n\r  Installing : httpd-2.2.15-15.el6.x86_64                                   1/1 \nInstalled products updated.\n\nInstalled:\n 
httpd.x86_64 0:2.2.15-15.el6                                                  \n\nComplete!\n"

]

}

在上面例子中,可以看到直接进行了安装

1.4 指定版本进行安装包

[root@ansibleserver ~]# ansible pythonserver -m yum -a "name=httpd-2.2.15-15.el6.x86_64  state=present "

SSH password:

192.168.1.60 | success >> {

"changed": true,

"msg": "",

"rc": 0,

"results": [

"Loaded plugins: product-id, security, subscription-manager\nUpdating certificate-based repositories.\nSetting up Install Process\nResolving Dependencies\n--> Running transaction check\n---> Package httpd.x86_64 0:2.2.15-15.el6 will be installed\n-->
Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package         Arch             Version                   Repository     Size\n================================================================================\nInstalling:\n
httpd           x86_64           2.2.15-15.el6             kel           808 k\n\nTransaction Summary\n================================================================================\nInstall       1 Package(s)\n\nTotal download size: 808 k\nInstalled size:
2.9 M\nDownloading Packages:\nRunning rpm_check_debug\nRunning Transaction Test\nTransaction Test Succeeded\nRunning Transaction\n\r  Installing : httpd-2.2.15-15.el6.x86_64                                   1/1 \nInstalled products updated.\n\nInstalled:\n 
httpd.x86_64 0:2.2.15-15.el6                                                  \n\nComplete!\n"

]

}

在进行name指定版本的时候,架构类型可以写也可以不写,也就是x86_64可以写或者不写都是可以的

在写上版本的时候,注意是l还是1,注意具体的版本型号,在实验的时候因为字母l和数字1导致很多时间被浪费,指定的具体版本无法进行安装

1.5 更新所有安装包

[root@ansibleserver ~]# ansible pythonserver -m yum -a "name=* state=latest"

1.6 指定rpm进行安装

[root@ansibleserver ~]# ansible pythonserver -m yum -a "name=/usr/local/src/kel.noarch.rpm state=present"

表示直接指定了一个rpm的位置,然后进行直接安装rpm

1.7 指定远程网址rpm进行安装

ansible pythonserver -m yum -a "name=http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6.0.el6.ngx.noarch.rpm  state=present"

直接指定一个远程网址来进行安装包

anible包模块管理的更多相关文章

  1. day17跨文件夹导入模块,模块的两种被执行方式,包,直接使用包中模块,包的管理

    复习 ''' 1.模块 -- 一系列功能的集合体,用文件来管理一系列有联系的功能,该文件我们称之为模块,文件名就是模块名 -- import | from...import 来导入模块,从而使用模块中 ...

  2. Python科学计算包模块的安装(ubuntu)

    Python的科学计算包设计到C语言代码的编译,采用pip的方式安装会出现错误. 一种简单的方式是采用的集成包,具体的步骤参考:https://www.continuum.io/downloads#_ ...

  3. [20150522]RPM包的管理

    RPM包的管理 RPM包的分类 RPM包可分为源码包和二进制包两类.源码包的主要优点是开源,如果有足够的能力,可以修改源代码,源码包可以自由选择所需要安装的功能,软件是编译安装,所以更加适合自己的系统 ...

  4. Webpack: 为Web开发而生的模块管理器[转]

    Webpack: 为Web开发而生的模块管理器 原文地址:http://hanjianwei.com/2014/09/10/webpack-package-manager-for-web/ 10 Se ...

  5. npm模块管理器入门

    什么是 NPM npm 是 Node 官方提供的包管理工具,他已经成了 Node 包的标准发布平台,用于 Node 包的发布.传播.依赖控制.npm 提供了命令行工具,使你可以方便地下载.安装.升级. ...

  6. Perl模块管理

    Perl模块管理 perl有自带的模块,还有第三方模块.自带的模块是随perl安装而安装好的,第三方模块需要从CPAN(Comprehensive Perl Archive Network)上下载并安 ...

  7. [Web 前端] 使用yarn代替npm作为node.js的模块管理器

    cp from : https://www.jianshu.com/p/bfe96f89da0e     Fast, reliable, and secure dependency managemen ...

  8. 每天记录一点:NetCore获得配置文件 appsettings.json vue-router页面传值及接收值 详解webpack + vue + node 打造单页面(入门篇) 30分钟手把手教你学webpack实战 vue.js+webpack模块管理及组件开发

    每天记录一点:NetCore获得配置文件 appsettings.json   用NetCore做项目如果用EF  ORM在网上有很多的配置连接字符串,读取以及使用方法 由于很多朋友用的其他ORM如S ...

  9. 使用yarn代替npm作为node.js的模块管理器

    使用yarn代替npm作为node.js的模块管理器 转 https://www.jianshu.com/p/bfe96f89da0e     Fast, reliable, and secure d ...

随机推荐

  1. ace-min.css

    textarea,input[type="text"],input[type="password"],input[type="datetime&quo ...

  2. 验证工具类 - ValidateUtils.java

    验证工具类,提供验证email格式.是否ipv4.是否ipv6.是否中文.是否数字.正则表达式验证的方法. 源码如下:(点击下载 - ValidateUtils.java .commons-lang- ...

  3. OpenMp并行提升时间为什么不是线性的?

    最近在研究OpenMp,写了一段代码,如下: #include<time.h> #include<stdio.h> #include<stdlib.h> #incl ...

  4. [转]c/c++输入函数

    最全输入函数 c/c++ 一: c=getchar(); 功能:读入一个字符 说明:调用此函数时要求在程序的第一行有预编译命令:#include<stdio>,不过在做c++时 有#inc ...

  5. VMware虚拟机中的常用文件介绍

    虚拟机的文件管理由VMware Workstation来执行.一个虚拟机一般以一系列文件的形式储存在宿主机中,这些文件一般在由workstation为虚拟机所创建的那个目录中. 如下图所示:(< ...

  6. Using dblink in Postgres

    select contractid from tcim_s_enterprice EXCEPT select contractid from dblink ( 'host=172.16.51.25 p ...

  7. 标准模板库(STL)学习探究之stack

    标准模板库(STL)学习探究之stack queue priority_queue list map/multimap dequeue string

  8. IE JS编程需注意的内存释放问题

    1.给DOM对象添加的属性是一个对象的引用.范例:var MyObject = {};document.getElementById('myDiv').myProp = MyObject;解决方法:在 ...

  9. radio checked不起作用的原因

    <table id="approveTable"> <tr> <td> <input type="radio" nam ...

  10. System.Linq.Dynamic 和Nhibernate

    var session = NHibernateSessionManager.Instance.GetSession(); "); var staffList = session.Query ...