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、定期更新系统),防止未授权访问。