{"id":14965355,"url":"https://github.com/bigbigy/salt-ssh-install-salt-minion","last_synced_at":"2026-03-06T20:32:36.322Z","repository":{"id":217988313,"uuid":"84296886","full_name":"BigbigY/salt-ssh-install-salt-minion","owner":"BigbigY","description":"利用salt-ssh批量部署salt-minion","archived":false,"fork":false,"pushed_at":"2019-01-28T02:47:39.000Z","size":17,"stargazers_count":19,"open_issues_count":0,"forks_count":4,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-31T07:04:24.816Z","etag":null,"topics":["salt","salt-minion","salt-ssh","saltstack"],"latest_commit_sha":null,"homepage":"","language":"SaltStack","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BigbigY.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2017-03-08T08:27:57.000Z","updated_at":"2021-12-07T05:38:45.000Z","dependencies_parsed_at":"2024-01-19T04:09:06.927Z","dependency_job_id":null,"html_url":"https://github.com/BigbigY/salt-ssh-install-salt-minion","commit_stats":null,"previous_names":["bigbigy/salt-ssh-install-salt-minion"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BigbigY%2Fsalt-ssh-install-salt-minion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BigbigY%2Fsalt-ssh-install-salt-minion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BigbigY%2Fsalt-ssh-install-salt-minion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BigbigY%2Fsalt-ssh-install-salt-minion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BigbigY","download_url":"https://codeload.github.com/BigbigY/salt-ssh-install-salt-minion/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238128555,"owners_count":19421053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["salt","salt-minion","salt-ssh","saltstack"],"created_at":"2024-09-24T13:34:38.104Z","updated_at":"2025-10-25T11:31:26.503Z","avatar_url":"https://github.com/BigbigY.png","language":"SaltStack","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Saltstack？ #\nSalt 一种全新的基础设施管理方式，部署轻松，在几分钟内可运行起来，扩展性好，很容易管理上万台服务器，速度够快，服务器之间秒级通讯。\n\nsalt底层采用动态的连接总线, 使其可以用于编配, 远程执行, 配置管理等等.\n\n# 批量部署salt-minion客户端 #\n\n大规模部署salt的时候，为了减轻运维工作，需要批量来安装salt-minion客户端。\n\nsalt-ssh是Saltstack的另一种管理方式，无需安装minion端，可以运用Salt的一切功能，管理和使用方式和基本和Salt一样。但是执行效率会比有minion端慢很多，不适合大规模批量操作\n\n## 环境： ##\n```\n192.168.1.14  服务端：salt-ssh salt-master salt-minion\n192.168.1.15  客户端：salt-minion\n192.168.1.16  客户端：salt-minion\n192.168.1.17  客户端：salt-minion\n```\n\n# 一、salt-ssh安装（master端） #\n\n### 1、克隆代码： ###\n```\n$ git clone https://github.com/BigbigY/salt-ssh-install-salt-minion.git\n```\n\n### 2、导入SaltStack存储密钥： ###\n```\n$ rpm --import SALTSTACK-GPG-KEY.pub\n```\n\n### 3、将saltstack.repo拷贝到/etc/yum.repos.d/ ###\n\n### 4、Run sudo yum clean expire-cache. ###\n\n### 5、Run sudo yum update. ###\n\n### 6、安装salt-ssh ###\n提示：salt-ssh不需要启动服务,只需要启动下salt-master服务\n```\n$ yum -y install salt-ssh salt-master\n$ systemctl start salt-master\n```\n\n\n# 二、配置salt-ssh客户端信息，通信 #\n\n### 1、ip文件： ###\n把所有minion_ip放到文件中，格式如下：\n```\n$ cat host_ip.txt \n192.168.1.14\n192.168.1.15\n192.168.1.16\n192.168.1.17\n```\n\n### 2、批量添加脚本： ###\nUSERNAME是客户端用户名，PASSWORD是客户端密码，这里的话客户端账号密码都相同，所有我写了个批量添加的脚本\n```\n$ cat ip.sh\n#!/bin/bash\nUSERNAME=\"root\"\nPASSWORD=\"123\"\nfor i in `cat /root/host_ip.txt`\ndo\n        echo \"$i:\" \u003e\u003e /etc/salt/roster ##$i表示取文件的每行内容\n        echo \"  host: $i\" \u003e\u003e /etc/salt/roster\n        echo \"  user: $USERNAME\" \u003e\u003e/etc/salt/roster\n        echo \"  passwd: $PASSWORD\" \u003e\u003e/etc/salt/roster\n#        echo \"  sudo: True\" \u003e\u003e/etc/salt/roster\n        echo \"  timeout: 10\" \u003e\u003e/etc/salt/roster\ndone\n```\n\n### 3、执行，查看 ###\n```\n$ cat /etc/salt/roster\n# Sample salt-ssh config file\n#web1:\n#  host: 192.168.42.1 # The IP addr or DNS hostname\n#  user: fred         # Remote executions will be executed as user fred\n#  sudo: True         # Whether to sudo to root, not enabled by default\n#web2:\n#  host: 192.168.42.2\n192.168.1.14:\n  host: 192.168.1.14\n  user: root\n  passwd: 123\n  timeout: 10\n192.168.1.15:\n  host: 192.168.1.15\n  user: root\n  passwd: 123\n  timeout: 10\n192.168.1.16:\n  host: 192.168.1.16\n  user: root\n  passwd: 123\n  timeout: 10\n192.168.1.17:\n  host: 192.168.1.17\n  user: root\n  passwd: 123\n  timeout: 10\n```\n\n### 4、测试 ###\n```\n$ salt-ssh -i '*' test.ping\n192.168.1.17:\n    True\n192.168.1.14:\n    True\n192.168.1.16:\n    True\n192.168.1.15:\n    True\n```\n\n# 三、批量安装salt-minion #\n\n### 1、目录结构： ###\n```\n$ pwd\n/srv/salt\n$ tree minions/\nminions/\n├── 5\n│   └── README.md\n├── 6\n│   └── README.md\n└── 7\n    ├── conf\n    │   ├── minion\n    │   ├── SALTSTACK-GPG-KEY.pub\n    │   └── saltstack.repo\n    └── install.sls\n\n4 directories, 6 files\n```\n\n### 2、需要在控制端/etc/hosts文件增加Host解析（master） ###\n```\n$ cat /etc/hosts\n192.168.1.14  salt.node1.com\n192.168.1.15  salt.node2.com\n192.168.1.16  salt.node3.com\n192.168.1.17  salt.node4.com\n```\n\n\n### 3、执行： ###\nminion配置文件根据自己master_ip修改，id根据自身情况获取\n\n```\n$ pwd\n/srv/salt\nsalt-ssh -i '*' state.sls minions.7.install\n```\n\n### 4、查看需要授权的主机： ###\n```\n$ salt-key\nAccepted Keys:\nDenied Keys:\nUnaccepted Keys:\n192.168.1.14\n192.168.1.15\n192.168.1.16\n192.168.1.17\nRejected Keys:\n```\n\n### 5、授权要管理的主机： ###\n```\n$ salt-key -A\nThe following keys are going to be accepted:\nUnaccepted Keys:\n192.168.1.14\n192.168.1.15\n192.168.1.16\n192.168.1.17\nProceed? [n/Y] y\nKey for minion 192.168.1.14 accepted.\nKey for minion 192.168.1.15 accepted.\nKey for minion 192.168.1.16 accepted.\nKey for minion 192.168.1.17 accepted.\n```\n\n### 查看 ###\n```\n$ salt-key\nAccepted Keys:\n192.168.1.14\n192.168.1.15\n192.168.1.16\n192.168.1.17\nDenied Keys:\nUnaccepted Keys:\nRejected Keys:\n```\n\n### 6、salt测试 ###\n```\n$ salt '*' test.ping\n192.168.1.14:\n    True\n192.168.1.15:\n    True\n192.168.1.16:\n    True\n192.168.1.17:\n    True\n```\n\n### 7、取消salt-ssh： ###\n在/etc/salt/roster清除添加的认证主机\n\n### 8、测试 ###\n```\n$ salt '*' test.ping\n192.168.1.14:\n    True\n192.168.1.15:\n    True\n192.168.1.16:\n    True\n192.168.1.17:\n    True\n```\n\n\n温馨提示：\n此篇以ip为minion_id，如果需要根据主机名，可以先把主机名写命名好，然后改写install.sls grains获取改成host主机名就可以了。\n或者可以自己编写个grains模块来获取。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigbigy%2Fsalt-ssh-install-salt-minion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbigbigy%2Fsalt-ssh-install-salt-minion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbigbigy%2Fsalt-ssh-install-salt-minion/lists"}