1.2 Salt-ssh批量自动安装被控端minion

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
[root@bogon salt] # cat master
file_roots:
   base:
     -  / srv / salt / base
   prod:
     -  / srv / salt / prod
interface:  192.168 . 88.3
reactor:
     -  'salt/auth' :
         -  / srv / reactor / Minion.sls
     -  'salt/minion/*/start' :
         -  / srv / reactor / auto.sls
         
[root@bogon salt] # cat roster
m10:
    host:  192.168 . 88.6
    user: root
    passwd:  123456
         
/ srv / salt目录结构      
conf  install.sls  yum.repos.d
 
[root@bogon minions] # cat install.sls 
minion_yum:
   file .recurse:
     -  name:  / etc / yum.repos.d
     -  source: salt: / / minions / yum.repos.d
     -  user: root
     -  group: root
     -  file_mode:  644
     -  dir_mode:  755
     -  include_empty:  True
minion_install:
   pkg.installed:
     -  pkgs:
       -  salt - minion
     -  require:
       -  file : minion_yum
     -  unless: rpm  - qa | grep salt - minion
minion_conf:
   file .managed:
     -  name:  / etc / salt / minion
     -  source: salt: / / minions / conf / minion 
     -  user: root
     -  group: root
     -  mode:  640
     -  require:
       -  pkg: minion_install
minion_service:
   service.running:
     -  name: salt - minion
     -  enable:  True
     -  require:
       -  file : minion_conf 
  
[root@bogon minions] # cat conf/minion 
master:  192.168 . 88.3
id : m10 
      
这样可以完成自动验证
 
[root@bogon salt] # cat master
file_roots:
   base:
     -  / srv / salt / base
   prod:
     -  / srv / salt / prod
interface:  192.168 . 88.3
reactor:
     -  'salt/auth' :
         -  / srv / reactor / Minion.sls
     -  'salt/minion/*/start' :
         -  / srv / reactor / auto.sls
[root@bogon salt] # cat /srv/reactor/Minion.sls 
{ %  if  'act'  in  data  and  data[ 'act' = =  'pend'  % }
minion_add:
   wheel.key.accept:
     -  match: {{ data[ 'id' ] }}
{ %  endif  % }
[root@bogon salt] # cat /srv/reactor/auto.sls 
run_state:
     local.state.sls:
         -  tgt: {{ data[ 'id' ] }}
         -  arg:
             -  shencan
run_init:
     local.cmd.run:
         -  tgt: {{ data[ 'id' ] }}
         -  arg:
             -  echo initsok >> / tmp / cpis


salt-ssh -i '*' state.sls minions.install


总是研究一个东西,被很多东西诱惑,搞到最后目标都没了。靠。


参考 http://zkhylt.blog.51cto.com/3638719/1782990


salt升级

https://repo.saltstack.com/yum

yum install salt-minion python26-zmq -y

#yum install --downloadonly --downloaddir=/home salt-2016


先决条件,全部在master操作


vim /etc/hosts

172.1.1.2 id1


vim /etc/salt/roster

id1:

   host: 172.1.1.2

   user: root

   passwd: xx




master  172.1.1.1

1
2
3
4
5
6
7
8
[root@nginx minions] # tree
.
├── conf
│   └── minion
├── install.sls
└── yum.repos.d
     ├── Centos - Base - 6.repo
     └── salt - latest.repo


[root@nginx minions]# cat /etc/salt/master

file_roots:

  base:

    - /srv/salt

  prod:

    - /srv/salt/prod

  minion:

    - /srv/salt/minions

interface: 172.1.1.1

nodegroups:

     mysql: 'id1'


cd /srv/salt/minions

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[root@nginx minions] # cat install.sls 
minion_yum:
   file .recurse:
     -  name:  / etc / yum.repos.d
     -  source: salt: / / minions / yum.repos.d
     -  user: root
     -  group: root
     -  file_mode:  644
     -  dir_mode:  755
     -  include_empty:  True
minion_install:
   pkg.installed:
     -  pkgs:
       -  salt - minion
     -  require:
       -  file : minion_yum
     -  unless: rpm  - qa | grep salt - minion
minion_conf:
   file .managed:
     -  name:  / etc / salt / minion
     -  source: salt: / / minions / conf / minion 
     -  user: root
     -  group: root
     -  mode:  640
     -  template: jinja
     -  defaults:
       minion_id: {{ grains[ 'fqdn_ip4' ][ 0 ]}}
     -  require:
       -  pkg: minion_install
minion_service:
   service.running:
     -  name: salt - minion
     -  enable:  True
     -  require:
       -  file : minion_conf

cat /srv/salt/minions/conf/minion

master: 172.1.1.1

id: id1


写完后,运行命令


任何目录 salt-ssh -i '*' state.sls minions.install


salt-ssh -ir '*' 'ps aux | grep salt' | grep salt | grep -v grep| wc -l ##查看安装minion端的salt-minion进程是否运行,一个客户端运行一个salt-minion服务


完毕。




本文转自 liqius 51CTO博客,原文链接:http://blog.51cto.com/szgb17/1928970,如需转载请自行联系原作者
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
Salt-ssh批量部署minion
1. 配置salt-ssh 1.1 Master节点安装salt-ssh软件包 yum -y install salt-ssh 1.
1058 0
|
1月前
|
安全 Linux Shell
Linux SSH(Secure Shell)服务
Linux SSH提供安全网络协议,使用公钥加密技术确保远程服务传输安全。OpenSSH是实现SSH服务的免费开源工具,允许用户加密连接远程登录Linux服务器执行任务。SSH比Telnet更安全,防止数据被截获。SSH还支持端口转发和隧道,广泛应用于系统管理和网络维护,是安全远程访问服务器的重要工具。
26 1
|
4月前
|
Linux 网络安全
Linux命令(124)之ssh
Linux命令(124)之ssh
35 2
|
2月前
|
安全 Shell Linux
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
【Shell 命令集合 文件管理】Linux ssh 远程主机之间复制文件 scp 命令使用教程
45 0
|
20天前
|
Linux 网络安全 数据安全/隐私保护
SSH工具连接远程服务器或者本地Linux系统
SSH工具连接远程服务器或者本地Linux系统
20 0
|
7天前
|
存储 安全 Linux
|
13天前
|
监控 安全 Linux
【专栏】Linux SSH 的安全对于远程管理至关重要,这几个小妙招安排上!
【4月更文挑战第28天】在数字化时代,Linux SSH 的安全对于远程管理至关重要。增强 SSH 安全包括:使用强密码,调整 SSH 配置文件,尤其是端口号和认证方式;采用密钥认证代替密码;限制登录用户,禁止密码登录;使用防火墙限制访问;定期更新系统和软件。此外,通过日志监控、入侵检测系统及及时应对攻击来提升安全监控。保持对安全知识的学习和更新,结合最佳实践,是保障 SSH 安全的关键。记得安全是个持续过程,时刻保持警惕!
|
5天前
|
安全 Linux 网络安全
|
17天前
|
安全 Unix Linux
基于MobaXterm工具的Linux远程SSH登录
本文介绍了如何使用 MobaXterm 进行 Linux 远程登录。首先,从官方网站下载并安装 MobaXterm。启动后,创建新的远程会话,选择 SSH 类型,输入服务器 IP、主机名和端口。接着,提供用户名和密码进行连接。成功后,即可使用远程终端执行命令。此外,文章还提到了其他常用的 Linux 远程登录工具,如 PuTTY、OpenSSH、SecureCRT 和 Xshell,强调了选择工具时应考虑个人偏好和安全需求。
|
22天前
|
网络协议 安全 Linux
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器
IDEA通过内网穿透实现固定公网地址远程SSH连接本地Linux服务器