saltstate服务搭建:

cat /etc/hosts(master和minion都添加)

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.1.201   kvm2

192.168.1.202   kvm3

salt-master端执行

====================================================

#换阿里源:

wget https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

yum -y install epel-release-latest-7.noarch.rpm

#master端安装salt-master和salt-minion

yum -y install salt-master salt-minion

#设置master

sed -i "s/^#interface: 0.0.0.0/interface: `ip a|grep "/24"|awk -F '/' '{print $1}'|awk -F ' ' '{print $2}'`/" /etc/salt/master

sed -i "/interface:/a\id: `ip a|grep "/24"|awk -F '/' '{print $1}'|awk -F ' ' '{print $2}'`" /etc/salt/master

sed -i "s/^#file_roots/file_roots/" /etc/salt/master

sed -i "s/^#  base/  base/" /etc/salt/master     #这一步可能会有另一个一模一样的也会打开,请注意

sed -i "s/#    - \/srv\/salt/    - \/srv\/salt/" /etc/salt/master

sed -i "s/^#auto_accept: False/auto_accept: True/" /etc/salt/master

sed -i "s/^#publish_port/publish_port/" /etc/salt/master

sed -i "s/#ret_port/ret_port/" /etc/salt/master

#启动master

systemctl start salt-master

#设置开机自启动

chkconfig salt-master on

#设置minion

cat /etc/salt/minion|grep -v ^#|grep -v ^$

master: 192.168.1.

id: 192.168.1.

#启动minion

systemctl start salt-minion

#设置开机自启动

chkconfig salt-minion on

============================================================

#minion端安装minion

wget https://mirrors.aliyun.com/epel/epel-release-latest-7.noarch.rpm

yum -y install epel-release-latest-7.noarch.rpm

yum -y install salt-minion

#设置minion端minion的配置文件

cat /etc/salt/minion|grep -v ^#|grep -v ^$

master: 192.168.1.

id: 192.168.1.

systemctl start salt-minion

systemctl enable salt-minion

******************************************************

如果此时删除了/etc/salt/pki/master目录下的所有

或者删除了/etc/salt/pki/minion目录下的所有

那么客户端和服务器的salt-master和salt-minion都需要重启

******************************************************

#salt-master端操作

[root@kvm2 master]# pwd

/etc/salt/pki/master

[root@kvm2 master]# salt-key -L   (-L:列表 -D:删除所有 -d:删除选中的 -A:同意所有 -a 192*)

Accepted Keys:

192.168.1.201           #重点

192.168.1.202           #重点

Denied Keys:

Unaccepted Keys:

Rejected Keys:

[root@kvm2 master]# tree

.

├── master.pem

├── master.pub

├── minions

├── minions_autosign

├── minions_denied

├── minions_pre

│   ├── 192.168.1.201

│   └── 192.168.1.202

└── minions_rejected

[root@kvm2 master]# salt-key -A

测试:

**********************************************

解决:

登录到192.168.1.202上,并执行rm -rf /etc/salt/pki/minion/minion_master.pub

再重启下:systemctl restart salt-minion

说明:

minion端拿到的key与master端的不符,验证无法通过。

解决方法是删除minion端的key,再重新与master进行连接和认证

master端再全部接收一次salt-key -A 并 重启salt-master和salt-minion

**********************************************

注:打开上面配置文件中的选项

mkdir /srv/salt

systemctl restart salt-master

#写一个安装httpd的服务

cd /srv/salt/

vim apache.sls          (下行比上行多2个空格)

apache-install:         (标题,可自定义)

pkg.installed:        (pkg模块的installed方法,重点)

- names:            (通过names告诉installed要装什么)

- httpd

- httpd-devel

apache-service:         (标题,可自定义)

service.running:      (service模块的running方法)

- name: httpd

- enable: True    (开机自启)

- reload: True

注:第2行是使用pkg函数的installed的方法

上图中第4和5行都是names的参数传递的包的名称

                  ***************   中间省略一部分 *******************

salt '*' cmd.run 'yum -y install net-tools'

salt '*' cmd.run 'ip a'

高级状态: 官网介绍

cd /srv/salt

vim top.sls     #文件必须放在base环境下

base:

'192.168*':

- apache


[root@kvm2 salt]# salt '*' state.highstate

[root@kvm2 salt]# salt '*' grains.ls


[root@kvm2 salt]# salt '*' grains.items

#把所有grains的内容显示出来,也可以是单台机器的 salt '192.168.1.202' grains.items

#显示的内容中包括cpu标志位、base的版本、base的时间、cpu型号、cpu架构、域名、fqdn名、硬件信息等

部分命令:

salt-key -a <key-name>   #接受某个minion-key

salt-key -d <key-name>   #删除某个minion-key

salt-key -A              #接受所有的minion-key

salt-key -D              #删除所有的minion-key

显示磁盘使用情况

salt '*' disk.usage

salt 'minion*' disk.usage

列出网络接口

salt '*' network.interfaces

安装包

salt '*' pkg.install <命令参数>

目标可以使用Grains系统基于Salt minion系统信息:

salt -G 'os:Ubuntu' test.ping

可以通过正则表达式过滤目标

salt -E 'minion[0-9]' test.ping

可以在列表中明确指定目标

salt -L 'minion1,minion2' test.ping

Salt命令使用通用结构执行:

salt '*' pkg.install 'tree'

说明:

*:目标

pkg:模块

install:方法

tree: 参数

目标.方法: 这就是你如何利用Salt的真正力量。命令由模块和功能组成,Salt带有内置模块,用于安装软件,复制文件,检查服务以及您想要自动执行的大多数其他任务。

参数:提供您正在调用的函数所需的任何额外数据。例如,pkg.install函数想知道您要安装哪些软件包。你用一个参数告诉它。

文件:

您可以将模块或函数名称传递给sys.doc执行模块,以直接从命令行获取有关任何模块的详细信息。该列表基于目标进行过滤。

相当于CentOS中的man --help这些参数

比如:

salt '*' sys.doc

salt '*' sys.doc pkg

salt '*' sys.doc pkg.install

向主机的hosts文件中添加条目

vim opop.sls

myserver in hosts file:

host.present:

- name: myserver         #要添加的主机名

- ip: 192.168.1.202    #要添加的IP

执行:

salt '192.168.1.202' state.sls opop

执行调用功能

vim opop.sls

restart vsftpd:

module.run:

- name: service.restart

- m_name: vsftpd      #m_name作为“名称”传递给执行模块

salt '*' state.sls opop

参考       官网参考








关于Staltstack的更多相关文章

  1. staltStack安装配置

    http://www.cnblogs.com/kevingrace/p/5570290.html

  2. Saltstack 介绍、安装、配置语法(一)

    Slatstack 介绍 官网:https://saltstack.com/ 官方源:http://repo.saltstack.com/  (介绍各操作系统安装方法) yum install htt ...

随机推荐

  1. C#之反射(PropertyInfo类)

    1.引入命名空间:System.Reflection:程序集:mscorlib(在mscorlib.dll中) 2.示例代码(主要是getType().setValue().getValue()方法) ...

  2. 虚拟化(二):虚拟化及vmware workstation产品使用

    虚拟化(一):虚拟化及vmware产品介绍 vmware workstation的最新版本号是10.0.2. 相信大家也都使用过,当中的简单的虚拟机的创建.删除等,都非常easy.这里就不再具体说明了 ...

  3. LeetCode 961. N-Repeated Element in Size 2N Array (重复 N 次的元素)

    题目标签:HashMap 题目给了我们一个size 为 2N 的int array,其中有 N + 1 个唯一的 数字,让我们找出那个重复的数字. 利用hashset,把每一个数字存入,一旦发现有重复 ...

  4. _io.TextIOWrapper

    ''' SELECT * FROM Info_Roles WHERE Flag=1 LIMIT 2; select top y * from 表 where 主键 not in(select top ...

  5. bootstrap table 显示连续序号,分页有效

    参考:http://blog.csdn.net/nazhidao/article/details/51647799 第一种,通过index+1可以简单实现,但是,翻页后又重新从第一个开始 { fiel ...

  6. 【转】获取Android控件的宽和高

    我们都知道在onCreate()里面获取控件的高度是0,这是为什么呢?我们来看一下示例: 首先我们自己写一个控件,这个控件非常简单: public class MyImageView extends ...

  7. 2017iOS开发最新的打包测试步骤(亲测)

    最近也是忙着修改项目,今天把最近遇到的问题和知识给大家分享一下. 有时候我们需要将我们的项目发给测试组进行bug测试,这时候我们就需要把自己的项目打包,生成一个二维码或者链接的形式,给测试组,接下来就 ...

  8. 【RAID在数据库存储上的应用 】

    随着单块磁盘在数据安全.性能.容量上呈现出的局限,磁盘阵列(Redundant Arrays of Inexpensive/Independent Disks,RAID)出现了,RAID把多块独立的磁 ...

  9. yii2的form表单用法

    使用表单 本章节将介绍如何创建一个从用户那搜集数据的表单页.该页将显示一个包含 name 输入框和 email 输入框的表单.当搜集完这两部分信息后,页面将会显示用户输入的信息. 为了实现这个目标,除 ...

  10. bzoj1433[ZJOI2009]假期的宿舍(匈牙利)

    1433: [ZJOI2009]假期的宿舍 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2544  Solved: 1074 [Submit][St ...