您的位置:首页 > 其它

anible包模块管理

2016-01-22 13:30 211 查看

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"

直接指定一个远程网址来进行安装包
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: