saltstate——salt的集中安装与配置(1)
state tree(以安装并运行 Apache为例)
源站:http://docs.saltstack.cn/topics/tutorials/states_pt1.html
中文翻译:http://blog.coocla.org/348.html
使用该tree来建立salt的文件树。
master是顶级节点。
个隔离度用于控制minion的行为。
一、建立state tree
1.打开state
1 2 3 4 5 |
vim /etc/salt/master # 取消注释以下内容 file_roots: base: - /srv/salt |
2.重启Salt master以使更改生效:
1 2 |
pkill salt-master salt-master -d |
二、Preparing the top file
在master上,上一步中的目录并没有被创建,(默认/srv/salt),创建一个名为top.sls文件,并添加以下内容:
1 2 3 |
base: '*': - webserver |
这个top.sls文件是用来分隔环境的。默认环境是base,在base的环境集合定义了对minions的匹配,可以使用简单的*来指定所有的主机。
-
目标minions
salt可以通过glob、pcre正则表达式,或者通过grains来进行匹配任何的目标机器,例如:
1 2 3 4 |
base: 'os:Fedora': - match: grain - webserver |
目标minion分组(直接根据操作系统下发命令)
线上WEB,DB,IMG等安装配置相同或者相近的服务器可分为一组,方便批量安装和管理。
1 |
salt -G 'os:CentOS' test.ping |
三、创建sls文件(注意,该文件不可以用tab排版,只能用空格…坑爹货)
在前述目录下创建webserver.sls文件,包含以下内容:
1 2 3 |
apache: # ID declaration pkg: # state declaration - installed # function declaration |
第一行,是对全局ID的声明,可以是任意的标识符,在这种情况下,使用需要被安装的软件包的包名来定义。
Note:对于apache httpd web服务器的包名取决于操作系统的发行版,例如,在Fedora是httpd,但在Debian/Ubuntu是apache2
第二行,是对state的声明,定义了我们所要使用的salt states,在这个例子中,我们使用pkg state以确保一个给定的包被正确安装。
第三行,称为函数的声明,这个函数被定义在pkg state这个模块中。
四、执行安装
下面让我们来运行我们创建的状态, 打开命令窗口在master 上运行下面语句。
1 |
salt '*' state.highstate |
2014年6月27日 Linux 0 Read more >
连续执行多条命令
原文:http://blog.csdn.net/freedom2028/article/details/7104131
多个命令可以放在一行上,其执行情况得依赖于用在命令之间的分隔符。
如果每个命令被一个分号 (;) 所分隔,那么命令会连续的执行下去,如:
引用
beyes@linux-beyes:/proc> printf “%s/n” “This is executed” ; printf “%s/n” “And so is this”
This is executed
And so is this
如果每个命令被 && 号分隔,那么这些命令会一直执行下去,如果中间有错误的命令存在,则不再执行后面的命令,没错则执行到完为止:
引用
beyes@linux-beyes:/proc> date && printf “%s/n” “The date command was successful”
2009年 08月 28日 星期五 18:28:16 CST
The date command was successful
所有命令成功执行完毕。
引用
beyes@linux-beyes:/proc> date && llk && printf “%s/n” “The date command was successful”
2009年 08月 28日 星期五 18:28:52 CST
bash: llk: command not found
后面的成功执行提示语句不会被输出,因为 llk 命令无法识别。
如果每个命令被双竖线(||)分隔符分隔,如果命令遇到可以成功执行的命令,那么命令停止执行,即使后面还有正确的命令则后面的所有命令都将得不到执行。假如命令一开始就执行失败,那么就会执行 || 后的下一个命令,直到遇到有可以成功执行的命令为止,假如所有的都失败,则所有这些失败的命令都会被尝试执行一次:
引用
beyes@linux-beyes:/proc> date || ls / || date ‘duck!’ || uname -a
2009年 08月 28日 星期五 18:33:18 CST
第一个命令成功执行!后面的所有命令不再得到执行。
引用
beyes@linux-beyes:/proc> date ‘duck!’ || dakkk || uname -a
date: 无效的日期 “duck!”
bash: dakkk: command not found
Linux linux-beyes 2.6.27.29-0.1-pae #1 SMP 2009-08-15 17:53:59 +0200 i686 i686 i386 GNU/Linux
前面的两个命令都失败了,直到找到最后一个可以成功执行的命令为止。
2014年6月27日 Linux 0 Read more >
RHELjava环境变量
编辑/etv/profile
在done与unset之间插入
1 2 3 4 |
JAVA_HOME=/usr/java/jdk1.7.0_60 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH |
2014年6月27日 Linux 0 Read more >
RHEL6scp(ssh拷贝、传输文件)
原文:http://www.vpser.net/manage/scp.html
Linux SSH远程文件/目录传输命令scp
相信各位VPSer在使用VPS时会经常在不同VPS间互相备份数据或者转移数据,大部分情况下VPS上都已经安装了Nginx或者类似的web server,直接将要传输的文件放到web server的目录,然后在目标机器上执行:wget http://www.vpser.net/testfile.zip 就行了。当VPS上没有安装web server和ftp server的时候或感觉上面的方法比较麻烦,那么用scp命令就会排上用场。
一、scp是什么?
scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。
二、scp有什么用?
1、我们需要获得远程服务器上的某个文件,远程服务器既没有配置ftp服务器,没有开启web服务器,也没有做共享,无法通过常规途径获得文件时,只需要通过scp命令便可轻松的达到目的。
2、我们需要将本机上的文件上传到远程服务器上,远程服务器没有开启ftp服务器或共享,无法通过常规途径上传是,只需要通过scp命令便可以轻松的达到目的。
三、scp使用方法
1、获取远程服务器上的文件
scp -P 2222 root@www.vpser.net:/root/lnmp0.4.tar.gz /home/lnmp0.4.tar.gz
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示远程服务器上的文件,最后面的/home/lnmp0.4.tar.gz表示保存在本地上的路径和文件名。
2、获取远程服务器上的目录
scp -P 2222 -r root@www.vpser.net:/root/lnmp0.4/ /home/lnmp0.4/
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4/ 表示远程服务器上的目录,最后面的/home/lnmp0.4/表示保存在本地上的路径。
3、将本地文件上传到服务器上
scp -P 2222 /home/lnmp0.4.tar.gz root@www.vpser.net:/root/lnmp0.4.tar.gz
上端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。 /home/lnmp0.4.tar.gz表示本地上准备上传文件的路径和文件名。root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4.tar.gz 表示保存在远程服务器上目录和文件名。
4、将本地目录上传到服务器上
scp -P 2222 -r /home/lnmp0.4/ root@www.vpser.net:/root/lnmp0.4/
上 端口大写P 为参数,2222 表示更改SSH端口后的端口,如果没有更改SSH端口可以不用添加该参数。-r 参数表示递归复制(即复制该目录下面的文件和目录);/home/lnmp0.4/表示准备要上传的目录,root@www.vpser.net 表示使用root用户登录远程服务器www.vpser.net,:/root/lnmp0.4/ 表示保存在远程服务器上的目录位置。
5、可能有用的几个参数 :
-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .
-C 使能压缩选项 .
-4 强行使用 IPV4 地址 .
-6 强行使用 IPV6 地址 .
附上将DiaHosting VPS 上的文件 scp传输Linode上的截图,速度在10MB/s:
高级用法:
1 |
scp xxx host:`pwd` |
自动放到host的xxx对应目录下。
RHEL /etc/fstab文件
/etc/fstab 文件解释
文件fstab包含了你的电脑上的存储设备及其文件系统的信息。它是决定一个硬盘(分区)被怎样使用或者说整合到整个系统中的唯一文件。
这个文件的全路径是/etc/fstab。它只是一个文本文件,你能够用你喜欢的编辑器打开它,但是必须是root用户才能编辑它。同时fsck、mount、umount的等命令都利用该程序。
具体来说:用fstab可以自动挂载各种文件系统格式的硬盘、分区、可移动设备和远程设备等。对于Windows与arch双操作系统用户,用fstab挂载FAT格式和NTFS格式的分区,可以在Linux中共享windows系统下的资源。
fstab文件示例
现在让我们看一下一个典型的fstab文件:
1 2 3 4 5 6 7 8 9 10 11 12 |
# <file system><dir><type><options><dump><pass> none /dev/pts devpts defaults 0 0 none /dev/shm tmpfs defaults 0 0 /dev/cdrom /media/cd iso9660 ro,user,noauto,unhide 0 0 /dev/dvd /media/dvd udf ro,user,noauto,unhide 0 0 /dev/fd0 /media/fl auto user,noauto 0 0 /dev/hda1 swap swap defaults 0 0 /dev/hda4 / ext3 defaults 0 1 /dev/hda3 /home xfs rw,suid,exec,auto,nouser,async 0 2 </pass></dump></options></type></dir></file> |
fstab详解
让我们对fstab的用法进行一个详细的了解。一个典型的entry有下面的fields (fields用空格或tab分开):
1 |
<file system><dir><type><options><dump><pass></pass></dump></options></type></dir></file> |
- <file systems> 不是我们通常理解的文件系统,而是指设备(硬盘及其分区,DVD光驱等)。它告知我们设备(分区)的名字,这是你在命令行中挂载(mount)、卸载(umount)设备时要用到的。so one should substitute for this entry the device name, remote partition, or similar. </file>
- <type> 指挂载设备或分区为何种文件系统类型(例如:ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap等)。 archLinux支持许多文件系统。 要得到一个完整的支持名单查找mount man-page。典型 的名字包括这些:ext2, ext3, reiserfs, xfs, jfs, smbfs, iso9660, vfat, ntfs, swap和auto, ‘auto’ 不是一个文件系统,而是让mount命令自动判断文件类型,特别对于可移动设备,软盘,DVD驱动器,这样做是很有必要的,因为可能每次挂载的文件类型不一致。 </type>
- <options>,选项,这部分是最有用的设置!!! </options>
它能使你所挂载的设备在开机时自动加载、使中文显示不出现乱码、限制对挂载分区读写权限。它是与mount命令的用法相关的,要想得到一个完整的列表,参考mount manpage.
-
- 推荐参数
1 |
noatime 关闭atime特性,提高性能,这是一个很老的特性,放心关闭,还能减少loadcycle |
-
- 默认设置
1 |
defaults 使用默认设置。等于rw,suid,dev,exec,auto,nouser,async,具体含义看下面的解释。 |
-
- 自动与手动挂载
1 2 |
auto 在启动或在终端中输入mount -a时自动挂载 noauto 设备(分区)只能手动挂载 The file system can be mounted only explicitly. |
-
- IO编码设置
1 2 3 4 5 6 |
iocharset= 在=号后面加入你的本地编码,似乎在这个设备(分区)中做文件IO的时候就会自动做编 码的格式转换。 例如:你的某个分区是编码是utf8,而设备中文件的编码是gb2312,当是复制你设备中的文件到你的这 个分区时,它将自动做编码转换。 (不知道我的理解对不对,但是好像用下面的nls就可以实现转换。) |
-
- 中文乱码的解决
1 |
nls= 在=号后面加入你的本地编码,你的中文就不会出现乱码。 |
-
- 读写权限
1 2 3 4 5 6 7 |
umask= 这是关于读写权限的,好像比下面的ro,rw选项更管用!!! 例如:umask=000或0222,使得挂载时option中有default,普通用户仍然能读写挂载设备中的东西。 请大家补充!!! ro 挂载为只读权限 rw 挂载为读写权限 |
-
- 可执行
1 2 |
exec 是一个默认设置项,它使在那个分区中的可执行的二进制文件能够执行。 noexec 二进制文件不允许执行。千万不要在你的root分区中用这个选项!!! |
-
- I/O同步
1 2 |
sync 所有的I/O将以同步方式进行 async 所有的I/O将以非同步方式进行 |
-
- 用户挂载权限
1 2 |
user 允许任何用户挂载设备。 Implies noexec,nosuid,nodev unless overridden. nouser 只允许root用户挂载。这是默认设置。 |
1 2 |
suid Permit the operation of suid, and sgid bits. They are mostly used to allow users on a computer system to execute binary executables with temporarily elevated privileges in order to perform a specific task. nosuid Blocks the operation of suid, and sgid bits. |
- <dump> 是dump utility用来决定是否做备份的. 安装之后(Arch Linux默认是不安装dump的), dump会检查entry并用数字来决定是否对这个文件系统进行备份。允许的数字是0和1。如果是0,dump就会忽略这个文件系统,如果是1,dump就会作一个备份。大部分的用户是没有安装dump的,所以对他们而言<dump>这个entry应该写为0。 </dump></dump>
- <pass> fsck会检查这个头目下的数字来决定检查文件系统的顺序(looks at the number substituted for <pass> and determines in which order the file systems should be checked)。允许的数字是0, 1, 和2。 文件系统的<pass>选项是0将不会被fsck utility检查。root文件系统应该拥有最高的优先权, 1,而所有其它的文件系统,如果你想让它被check的话,应该写成2。 </pass></pass></pass>
注意: 除了直接用设备(分区)名字,你也可以用UUID或卷名。格式 LABEL= or UUID=<uuid>。例如, `LABEL=Boot’ or `UUID=3e6be9de-8139-11d1-9106-a43f08d823a6′. </uuid>
用fstab自动挂载FAT32和NTFS分区
1.先在用fdisk -l(可能需要在root权限下)得到硬盘信息表,例如:
1 2 3 4 5 6 7 8 |
# Device Boot Start End Blocks Id System /dev/sda1 * 1 2397 19253871 b W95 FAT32 /dev/sda2 2398 3144 6000277+ 83 Linux /dev/sda3 3145 9729 52894012+ 5 Extended /dev/sda5 3145 3152 64228+ 83 Linux /dev/sda6 3153 3276 995998+ 82 Linux swap / Solaris /dev/sda7 3277 7340 32644048+ 83 Linux /dev/sda8 7341 9729 19189611 7 HPFS/NTFS |
从上面知道,这台电脑上只有一个硬盘,其中分区sda1和sda8为NTFS格式,sda1为可以启动的,因而可能为window的系统所在盘。下面把系统盘以只读方式持载上去,非系统盘sda8以读写方式挂载上去(不能挂载在”/”及其以下的任何目录)。
2.用你喜欢的编辑器在终端中打开/etc/fstab,例如:
1 |
nano /etc/fstab |
在文件末尾加入:
1 2 |
/dev/sda1 /mnt/WindowsC vfat defaults,codepage=936,iocharset=cp936,umask=0222 0 0 /dev/sda8 /mnt/WindowsD ntfs defaults,iocharset=utf8,umask=000,nls=utf8 0 0 |
保存,退出。
警告:使用936的codepage挂在fat32分区可能会造成linux下识别中文正常但是到windows下反而出现乱码,推荐替换成utf8,但是dmesg提示警告,没有关系,n多人用了这么长时间都没有问题
1 |
/dev/sda1 /mnt/WindowsC vfat user,utf8,umask=000 0 0 |
3.在终端中输入
1 |
mount -a |
你就应该能在/mnt/WindowsC下找到你的系统分区sda1内容,在/home/username/WindowsD中找到sda8的内容(其中username指用户名)。
RHELxhost
百度百科:http://baike.baidu.com/view/2909526.htm?fr=aladdin
控制什么人可以访问当前主机上的增强 X-Windows。
1语法编辑
xhost [ + | – ] [ Name ]
2描述编辑
xhost 是用来控制X server访问权限的。
通常当你从hostA登陆到hostB上运行hostB上的应用程序时,做为应用程序来说,hostA是client,但是对图形来说,是在hostA上显示的,需要使用hostA的Xserver,所以hostA是server。因此在登陆到hostB前,需要在hostA上运行xhost +来使其它用户能够访问hostA的Xserver。
xhost + 是使所有用户都能访问Xserver.
xhost + ip使ip上的用户能够访问Xserver.
xhost + nis:user@domain使domain上的nis用户user能够访问
xhost + inet:user@domain使domain上的inet用户能够访问
xhost 命令添加或删除 X 服务器接受连接的机器列表上的主机名。
该命令必须从有显示连接的机器上运行。可以通过使用 -Host 参数,从访问列表中除去一个名称。不要从访问列表中除去当前的名称。如果已经这样做了,请在作出任何更改之前注销系统。
输入无变量的 xhost 命令将显示访问 X 服务器的当前主机名,并显示一条消息表明访问是否已启用。
为了安全起见,只能从控制主机运行影响访问控制的选项。对于工作站来说,这台机器也就是服务器。对于 X 终端来说,这台机器是登录主机。
要在缺省情况下启用远程名称,可以在 /etc/X?.hosts 文件中定义名称,其中 ? 为启用访问的显示器号。
例如,显示器 jeanne:0 可以由使用 jeanne 的缺省主机名的系统上的 /etc/X0.hosts 文件中定义的系统访问。在显示名称和文件名中,0 表明已定义的远程系统允许通过增强 X-Windows 访问的显示器号。
3标志编辑
+Name |
定义要添加到 X 服务器访问列表的主机名(可以选用加号标记)。 |
– Name |
定义要从 X 服务器访问列表中除去的主机名。已有的连接没有被中断,但将拒绝新的连接请求。注意:可以除去当前的机器;然而,不允许进行进一步的连接(包括试图将其添加回来)。再一次启用本地连接的唯一方法就是将服务器复位(因此也会中断所有连接)。 |
+ |
指定访问不受限制。访问控制被关闭。 |
– |
打开访问控制。完整的 Name 有以下 family:name 语法: inet因特网主机local只包含一个名称,空字符串 注: 该系列是区分大小写的。名称的格式随系列而不同。 |
2014年6月25日 Linux 0 Read more >
使用salt
1.远程运行命令http://docs.saltstack.cn/topics/tutorials/modules.html
标准:
1 |
salt '<target>' <function> [arguments] |
minions执行命令
1 2 |
salt '*' cmd.run 'ls /etc' salt 'salt_m1' cmd.run 'll /etc' |
2.安装软件
1 |
salt '*' pkg.install vim |
先这样~
2014年6月24日 Linux 0 Read more >
RHELchkconfig
http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796873.html
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
使用语法:
chkconfig [–add][–del][–list][系统服务] 或 chkconfig [–level <等级代号>][系统服务][on/off/reset]
chkconfig在没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi 会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。
参数用法:
–add 增加所指定的系统服务,让chkconfig指令得以管理它,并同时在系统启动的叙述文件内增加相关数据。
–del 删除所指定的系统服务,不再由chkconfig指令管理,并同时在系统启动的叙述文件内删除相关数据。
–level<等级代号> 指定读系统服务要在哪一个执行等级中开启或关毕。
等级0表示:表示关机
等级1表示:单用户模式
等级2表示:无网络连接的多用户命令行模式
等级3表示:有网络连接的多用户命令行模式
等级4表示:不可用
等级5表示:带图形界面的多用户模式
等级6表示:重新启动
需要说明的是,level选项可以指定要查看的运行级而不一定是当前运行级。对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
chkconfig –list [name]:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig –add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig –del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [–level levels] name:设置某一服务在指定的运行级是被启动,停止还是重置。
运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用 – 代替运行级。第二行对服务进行描述,可以用 跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for
# higher quality random number generation.
使用范例:
chkconfig –list #列出所有的系统服务
chkconfig –add httpd #增加httpd服务
chkconfig –del httpd #删除httpd服务
chkconfig –level httpd 2345 on #设置httpd在运行级别为2、3、4、5的情况下都是on(开启)的状态
chkconfig –list #列出系统所有的服务启动情况
chkconfig –list mysqld #列出mysqld服务设置情况
chkconfig –level 35 mysqld on #设定mysqld在等级3和5为开机运行服务,–level 35表示操作只在等级3和5执行,on表示启动,off表示关闭
chkconfig mysqld on #设定mysqld在各等级为on,“各等级”包括2、3、4、5等级
如何增加一个服务:
1.服务脚本必须存放在/etc/ini.d/目录下;
2.chkconfig –add servicename
在chkconfig工具服务列表中增加此服务,此时服务会被在/etc/rc.d/rcN.d中赋予K/S入口了;
3.chkconfig –level 35 mysqld on
修改服务的默认启动等级。
2014年6月24日 Linux 0 Read more >
RHEL安装jdk包并配置环境变量
一、下载并安装jdk
下载地址http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
安装rpm包:
1 |
rpm -ivh jdk-7u60-linux-x64.rpm |
-i install
-v 显示详细进度
-h 打印50个hash标记
二、查看jdk安装目录
1 |
rpm -ql jdk |
-q query
-l list all packages
三、配置环境变量
1 2 3 4 5 6 7 |
vim /etc/profiles #在done 与 unset之间添加以下内容 JAVA_HOME=/usr/java/jdk1.7.0_60 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH |
四、重启生效
2014年6月24日 Linux 0 Read more >
CentOS安装salt并建立主从机cluster
官方文档:http://docs.saltstack.cn/
一、安装与部署
1.所有机器统一安装epel源
http://www.rackspace.com/knowledge_center/article/installing-rhel-epel-repo-on-centos-5x-or-6x
2.安装MASTER机
安装salt-master
1 |
yum install salt-master |
3.安装SLAVER(minion)机
1 |
yum install salt-minion |
二、配置
1.slaver机
a.配置主机名
1 2 3 |
vim /etc/sysconfig/network # 修改HOSTNAME HOSTNAME=salt_m1.localdomain |
b.配置master主机地址及salver主机名
1 2 3 4 5 6 |
vim /etc/salt/minion #取消注释#master这一行 master= 192.168.1.1 (master主机ip) # 取消注释 #id这一行 id= salt_m1 # 注意:‘=’后面要跟一个空格 |
3.启动服务
1 |
salt-minion -d |
2.master机
a.防火墙(如果开启了的话)开放4505和4506端口
http://docs.saltstack.cn/topics/tutorials/firewall.html
b.启动salt-master进程(改服务安装后为开机自启动,如有冲突检查一下是不是服务已经在运行了)
1 |
salt-master start |
c.验证slaver key
1 2 3 4 |
# 查看key状态 salt-key -L # 通过所有的key salt-key -A |
打完收工。