ceacer 2 已发布 1月29号 分享 已发布 1月29号 创建一个包含所有主机的文本文件: 首先,创建一个名为hosts.txt的文本文件,其中列出了所有要管理的主机及其IP地址或主机名。每行一个主机,如下所示: 192.168.1.100 192.168.1.101 192.168.1.102 使用SSH循环遍历主机列表: 接下来,使用ssh命令结合循环结构(如for循环)遍历hosts.txt中的每个主机,并执行相应的操作。例如,要将所有主机的防火墙设置为关闭状态,可以使用以下命令: while IFS= read -r host; do ssh "$host" "sudo systemctl stop firewalld" done < hosts.txt 如果需要在每个主机上执行多个命令,可以将它们连接在一起,如下所示: while IFS= read -r host; do ssh "$host" "sudo systemctl stop firewalld; sudo systemctl disable firewalld" done < hosts.txt 使用SSH密钥进行无密码登录: 为了避免在每个主机上输入密码,可以使用SSH密钥对进行无密码登录。首先,为每个主机生成一个SSH密钥对(如果尚未生成): ssh-keygen -t rsa -b 4096 -C "[email protected]" 然后,将公钥复制到每个主机的~/.ssh/authorized_keys文件中: for host in $(cat hosts.txt); do ssh-copy-id -i ~/.ssh/id_rsa.pub "$host" done 现在,你应该能够使用SSH无密码登录到所有主机并执行命令。 使用Ansible自动化批量管理: 对于更复杂的批量管理任务,可以使用Ansible等自动化工具。Ansible是一个强大的自动化工具,可以简化远程主机的管理任务。首先,安装Ansible: sudo apt-get install ansible 然后,创建一个名为playbook.yml的Ansible剧本文件,其中定义了要执行的任务: --- - name: Manage hosts hosts: all tasks: - name: Stop firewalld command: sudo systemctl stop firewalld - name: Disable firewalld command: sudo systemctl disable firewalld 最后,运行Ansible剧本以应用更改: ansible-playbook playbook.yml 评论链接 在其他网站上分享 更多分享选项...
推荐帖
创建账户或登录以发表评论
您需要成为会员才能发表评论
创建一个帐户
在我们的社区注册一个新账户。很简单!
注册新账户登入
已有账户?在此登录
立即登录