1 2 3 4

学习一下saltstack 服务器批量管理

学习一下saltstack 服务器批量管理

saltstack运维工具学习,以及rpc远程过程调用

环境准备 2台服务器 一个是

192.168.16.85 s24master
192.168.16.105 s24minion1

修改2台机器的主机名,用于主机名通信,加速salt的命令执行

hostnamectl set-hostname s24master
hostnamectl set-hostname s24minion

关闭2台机器的iptables防火墙策略,防止端口拒绝

iptables -F #清空防火墙规则
systemctl stop firewalld #关闭防火强服务
systemctl disable firewalld #禁止防火墙开机自启

分别安装2个软件,还是配置好阿里的yum源

yum install salt-master -y

yum install salt-minion -y

2.配置/etc/hosts文件,用于主机名通信

192.168.16.105 s24minion
192.168.16.85 s24master

3.修改salt的master和minion的配置文件
在master机器上修改 /etc/salt/master文件改为如下
[root@s24master ~]# grep -vE "^$|#" /etc/salt/master
interface: 0.0.0.0
publish_port: 4505
user: root
worker_threads: 5
ret_port: 4506

修改minion的配置如下
[root@s24minion yum.repos.d]# grep -vE "^$|#" /etc/salt/minion
master: s24master
master_port: 4506
user: root
id: s24minion1

4.分别启动salt-master和salt-minion
[root@s24master ~]# systemctl start salt-master
[root@s24minion yum.repos.d]# systemctl start salt-minion

5.查看密钥是否被读取到了
在master上输入salt-key -L ,查看是否读取到了minion的信息

6.分别检查2台机器的密钥信息,是否一致
在master机器上输入 salt-key -f s24minion1
在minion机器上输入 salt-call --local key.finger

7.接收minion1的密钥,准备管理他了
[root@s24master ~]# salt-key -a s24minion1

8.使用salt的第一个命令,测试服务器是否存活
salt '*' test.ping #发送命令接口,ping一下被管理的机器,是否存货,返回true活着,负责挂掉了,或者salt-minion服务器宕机了
salt 是核心管理命令
"*" 目标匹配
test.ping 是test模块下的一个功能函数

9.对于密钥管理的命令如下
salt-key 参数如下
-L #查看KEY状态
-A #允许所有
-D #删除所有
-a #认证指定的key
-d #删除指定的key
-r #注销掉指定key(该状态为未被认证)

salt-key -d 密钥名 #删除密钥

10.学习salt的命令接口
[root@s24master ~]# salt 's24minion1' test.fib 50
[root@s24master ~]# salt '*' cmd.run 'touch /tmp/一给我里giao' --summary #输出salt命令执行结果的详细情况

11.远程安装nginx,以及启动nginx
1026 salt '' cmd.run "systemctl status nginx"
1027 salt 's24minion1' cmd.run "yum install nginx -y"
1028 salt '
' cmd.run "systemctl status nginx"
1029 salt '' cmd.run "netstat -tunlp|grep 80"
1030 salt '
' cmd.run "yum install net-tools -y"
1031 salt '' cmd.run "netstat -tunlp|grep 80"
1032 salt '
' cmd.run "systemctl start nginx"
1033 salt '' cmd.run "netstat -tunlp|grep 80"
1034 salt '
' cmd.run "systemctl stop nginx"

12.远程安装redis,以及启动使用redis

13.salt提供的软件安装模块,其实页是在远程调用yum命令而已
[root@master 192.168.11.72 ~]$salt '*' pkg.install "nginx"

卸载minion上的nginx

[root@master 192.168.11.72 ~]$salt '*' pkg.remove "nginx"

检查pkg包的版本

[root@master 192.168.11.72 ~]$salt '*' pkg.version "nginx"

14.salt提供的服务信息模块其实调用的是 systemctl 命令
[root@s24master ~]# salt '' service.start "redis"
s24minion1:
True
[root@s24master ~]# salt '
' service.status "redis"
s24minion1:
True

15.输出json格式的数据,以及yaml格式的数据
[root@s24master ~]# salt '' service.status "redis" --out=json
{
"s24minion1": false
}
[root@s24master ~]#
[root@s24master ~]#
[root@s24master ~]# salt '
' service.start "redis" --out=json
{
"s24minion1": true
}

16.yaml语法学习
用python的数据结构做对比
{"s24":
{"学生":
{"男同学":["常鑫1号","常鑫2号"],"女同学":["常鑫","常黑"]}
}
}

用yaml表示这个数据结构,在线yaml网站http://www.bejson.com/validators/yaml_editor/

#yaml语法
"s24": 
   "学生": 
      "男同学":
           - "常鑫1号"
           - "常鑫2号"
      "女同学": 
        - "常黑"
        - "常白"

17.salt采集服务器静态信息之grains模块,其实就是用python写的一个超大的字典
salt '*' grains.items

[root@s24master ~]# salt '*' grains.item fqdn_ip4 --out=json

posted @ 2019-12-25 15:41  学霸君主  阅读(290)  评论(0编辑  收藏  举报