Saltstack 学习笔记(一)

Salt简介:

Salt(saltstack)是一个基础设施的自动化和配置管理工具,根据官方文档,salt是一个配置管理系统,能够维护远程节点到指定的状态(例如确保指定的包是安装的,并且指定的服务是正在运行的),并且能够分布式的在远程节点上执行命令和查询数据。

安装

本文是ubuntu 15.10作为测试,并且master和minion为同一台机器

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:saltstack/salt
sudo apt-get update
sudo apt-get install salt-master
sudo apt-get install salt-minion
service salt-master start
service salt-minion start

配置master为localhost 或127.0.0.1并且重启minion(也可以配置Id)

service salt-minion restart

查看salt-key

salt-key -L

接受salt-key

salt-key -a ‘hostname‘

使用

以下是些使用案例

对于nginx(安装nginx并且启动服务)

salt ‘*‘ pkg.install nginx
salt ‘*‘ service.start nginx

对于vim(安装)

salt ‘*‘ pkg.install vim

列出网卡信息

salt ‘*‘ network.intgerfaces

执行shell命令

salt ‘*‘ cmd.run ‘ls -l /etc‘

Grains

Salt自带的一个接口,能够获取底层的一些信息

查看所有minion的grains

salt ‘*‘ grains.ls

列出grains的数据

salt ‘*‘ grains.data

匹配所有操作系统是centos的minion,并且ping

salt -G ‘os:CentOS‘ test.ping

匹配64位cpu架构的minion,并且返回cpu的核心数

salt -G ‘cpuarch:x86_64‘ grains.item num_cpus

添加新的grain数据

打开minion配置文件

/etc/salt/minion

搜索grains

grains:
  roles:
    - webserver
    - memcache
  deployment: mydatacenter

你可以修改为你自定义的grain数据

roles:
  - webserver
  - memcache
deployment: mydatacente

重新启动minion,就可以master端查询到新的grains 数据

排错

    查看master和minion的debug信息

salt-master -l debug
salt-minion -l debug

在master使用nc 命令查看minion连接的端口信息

nc -v -z salt.master.ip 4505
nc -v -z salt.master.ip 4506

salt-call的debug信息

salt-call -l debug state.highstate

前台运行

salt-minion &

Salt验证

列出master上的所有key

salt-key -L

接受所有的key

slat-key -A

设置salt file的root目录

编辑master配置文件

/etc/salt/master

添加

  base:
    - /srv/salt/
  dev:
    - /srv/salt/dev/services
    - /srv/salt/dev/states
  prod:
    - /srv/salt/prod/services
    - /srv/salt/prod/states
/srv/salt/dev/states
/srv/salt/dev/pillars

Salt States

在master上 配置以下内容

/srv/salt/top.sls
#Code to add
 
base:
  ‘*‘:
    - webserve
时间: 2024-10-11 22:37:29

Saltstack 学习笔记(一)的相关文章

SaltStack 学习笔记 - 第十二篇: SaltStack Web 界面

SaltStack 有自身的用python开发的web界面halite,好处是基于python,可以跟salt的api无缝配合,确定就比较明显,需要个性化对web界面进行定制的会比较麻烦,如果喜欢体验该界面的可以参考下面的文章  http://rfyiamcool.blog.51cto.com/1030776/1275443/ 我是运用另一个python+php来进行web开发,具体需要的工具有在我的另一篇文章里面介绍过,这里再重新进行整个开发介绍 首先介绍php 跟python通信的工具 pp

Saltstack学习笔记(2)

1.5 Salt  命令介绍(常用的这些一定要多练习) 命令           功能描述 salt           Salt 主命令,比如执行命令模块 satl-cp        复制文件到指定的系统上去 salt-key       和 Minion 之间进行身份验证 salt-master    Master 主守护进程,用于控制 Minion salt-run       前端命令执行 salt-syndic    Salt syndic 守护进程,用于多级 salt-master

saltstack学习笔记2-认证

master和minion通信之前我们需要对每个minion进行认证,认证很简单,上节启动后,通过命令查看下认证列表 master端: salt-key -L    #查看认证列表 这时我们会发现未认证的两个主机,他们就是我们的minion1和2 这时我们可以通过两个命令来添加他们,单个添加和批量添加 salt-key -a 'minion1'    #单个添加 salt-key -A    #批量添加 当然能添加就能删除,删除命令也是两个,单个删除和批量删除 salt-key -d 'mini

saltstack学习笔记7-States

States是saltstack中的配置语言,日常进行配置管理时需要编写大量的states文件.比如安装一个包,然后管理一个配置文件,最后保证某个服务正常运行. 编写一些states sls文件(描述状态配置的文件)去描述和实现我们的功能.编写states sls文件都是YAML语法.当然states sls文件也支持使用Python语言,其实编写states sls文件并不难,官方提供大量的示例,我们只需要记住编写格式,然后根据自己的实际需求去编写适合自己业务的states sls文件 查看所

saltstack学习笔记8-Return

Return组件可以理解为saltstack系统对执行minion返回后的数据进行存储或者返回给其他程序 它支持多种存储方式,比如mysql.mongoDB.redis.memcached等,通过return我们可以对saltstack的每次操作进行记录,对以后日志审计提供了数据来源. 官方有30种return数据存储与接口,我们可以很方便的配置与使用它.当然也支持自己定义的return. 查看所有return列表 salt 'minion1' sys.list_returners minion

saltstack学习笔记9-JOB

saltstack里面执行任何一个操作都会在master上产生一个jid号,就像上一节存储到redis上的数据显示的一样 ./redis-cli monitor OK 1461054358.412376 [0 127.0.0.1:58564] "SELECT" "0" 1461054358.412717 [0 127.0.0.1:58564] "SET" "minion1:20160419162558137768" "

SaltStack学习笔记

一.安装部署 实验环境: Server : 192.168.0.41 Client-1: 192.168.0.42 Client-2: 192.168.0.43 1.安装epel源. rpm -Uvh http://mirrors.sohu.com/fedora-epel/6Server/x86_64/epel-release-6-8.noarch.rpm 2. 服务端安装salt-master,客户端安装salt-minion 3. 修改客户端配置文件/etc/salt/minion 修改两个

saltstack学习笔记4-Grains

Grains是saltstack记录minion静态信息的一个组件,我们可以简单地理解为Grains里面记录着每台Minion的一些常用属性,比如CPU.内存.磁盘.网络信息等,我们可以通过grains.items查看某台Minion的所有Grains信息,Minions的Grains信息是Minions启动的时候采集汇报给Master的,在实际应用环境中我们需要根据自己的业务需求去自定义一些Grains. 定义minion有三种方式: minion端通过配置文件定义 minion端通过模块定义

saltstack学习笔记1-安装

应用系统为CentOS6.6,Python2.6 saltstack分为master和minion,master为控制端,minion为被控制端.我对saltstack的架构理解为通过master指令去批量控制minion,降低烦琐的配置与操作,服务器少手动去操作还比较简单,但服务器到达一定数量工作量就无法想象了,saltstack可以很好的帮助我们减轻日常的工作量. master:192.168.80.10 master minion1:192.168.80.20 minion1 minion