SSH是远程管理Linux系统的标准协议,可直接在本地终端执行远程主机的Yum命令,实现软件包的远程管理。前提条件:远程主机已开启SSH服务(默认端口22),且本地拥有远程主机的访问权限(用户名+密码或SSH密钥)。
操作步骤:
使用ssh
命令格式:ssh 用户名@远程主机IP "yum 命令"
。例如:
ssh root@192.168.1.100 "yum update -y"
;nginx
:ssh user@192.168.1.100 "yum install nginx -y"
;httpd
:ssh admin@192.168.1.100 "yum remove httpd -y"
。ssh-keygen
生成密钥对,ssh-copy-id
复制公钥至远程主机),替代密码认证,提升安全性。Ansible是基于SSH的自动化运维工具,无需在远程主机安装客户端,可通过Playbook批量执行Yum命令,适用于大规模集群管理。
核心组件:
sudo yum install ansible -y
(CentOS/RHEL)或sudo apt install ansible -y
(Ubuntu/Debian);/etc/ansible/hosts
):添加远程主机IP或主机名,例如:[web_servers]
192.168.1.101
192.168.1.102
yum_update.yml
):定义Yum更新任务,内容如下:- hosts: web_servers
become: yes # 以root权限执行
tasks:
- name: Update all packages
yum:
name: "*"
state: latest
ansible-playbook yum_update.yml
,即可批量更新所有目标主机的软件包。Puppet、Chef等配置管理工具可实现软件包状态的自动化维护(如确保某软件包始终安装最新版、强制卸载指定软件包),适合企业级长期运维场景。
以Puppet为例:
site.pp
),定义Yum操作任务:node 'web_server.example.com' {
package { 'nginx':
ensure => 'latest', # 确保nginx为最新版本
}
package { 'httpd':
ensure => 'absent', # 强制卸载httpd
}
}
若需让多台客户端从统一的远程仓库获取软件包(避免本地下载),可搭建Yum仓库服务器,客户端通过配置.repo
文件指向该仓库。
操作步骤:
/var/repo/yum
);createrepo
工具生成仓库元数据:sudo yum install createrepo -y
,然后执行createrepo /var/repo/yum
。/etc/yum.repos.d/
目录下创建.repo
文件(如remote.repo
),内容如下:[remote_repo]
name=Remote YUM Repository
baseurl=http://repo.example.com/repo/ # 替换为仓库服务器的实际IP或域名
enabled=1
gpgcheck=0 # 若未启用GPG签名,设为0
sudo yum clean all && sudo yum makecache
;sudo yum install example-package -y
。以上方法覆盖了从单台远程操作到批量自动化管理的不同场景,可根据实际需求选择合适的方式。需注意,远程操作需严格遵守安全规范(如SSH密钥认证、限制访问IP、定期更新系统),防止未授权访问。