设为首页 收藏本站
查看: 1035|回复: 0

[经验分享] 40块钱抓娃娃

[复制链接]

尚未签到

发表于 2018-1-3 16:00:01 | 显示全部楼层 |阅读模式
  salt介绍
  salt简单介绍
  一个基础平台管理工具
  一个配置管理系统,能够维护预定义状态的远程节点
  一个分布式远程执行系统,用来在远程节点上执行命令和查询数据
  salt的核心功能
  使命令发送到远程系统是并行
  使用安全加密的协议
  使用最小最快的网络载荷
  提供简单的编程接口
  salt的优点
  saltstack使用python编写的,设备是轻量级别的
  saltstack通讯层采用zeroMQ实现使得它很快速
  saltstack开源
  salt-master启动时会启动两个端口
  4505:为salt的消息发布专用端口(发布消息)
  4506:为客户端与服务器端通讯的端口(接收消息)
  安装salt
  rpm -Uvh http://mirrors.yun-idc.com/epel/6Server/x86_64/epel-release-6-8.noarch.rpm
  yum install salt-master # 安装server端
  yum install salt-minion # 安装client端
  salt命令使用
  master端命令使用:
  salt-key:管理秘钥
  salt-cp: 复制
  salt-syndic: proxy使用
  minion端命令使用:
  salt-call: 在minion端主动执行任务使用
  修改配置文件:
  minion端需要配置
  master端IP:
  id:默认是主机名
  第一个命令:
  salt-key:管理所有minion的key
  查找的是缓存文件,在/etc/salt/pki下
  -L,--list-all : 列出所有的minion端发送过来的key
  -a ACCEPT,--accept=ACCEPT :允许一台minion
  -A,--accept-all:允许所有的minion
  -r REJECT,--reject=REJECT:拒绝一台minion
  -R,--reject-all:拒绝所有的minion
  -d DELETE,--delete=DELETE:删除指定的
  -D,--delete-all:删除所有的
  -y :默认运行yes
  salt-call:可以在minion上执行master对minion执行的所有动作
  minion:
  /etc/salt/minion :保存服务器的主机名
  /etc/salt/pki : 保存master的公钥和minion的密钥
  returner:
  默认情况下,发送给salt minion的命令执行结果将返回给salt master。
  Saltstack returner的接口允许将结果发送给任意系统
  内置returner模块列表
  event
  event是一个本地的ZeroMQ PUB interace,event是一个开放的系统,
  用于发送信息通知salt或其他的操作系统
  每个event都有一个标签。事件标签允许快速指定过滤时间。除了标签之外,
  每个事件都有一个数据结构。这个数据结构是一个dict类型,其中包含
  关于事件的信息
  通过监听event,master发送数据到mysql,记录日志步骤:
  准备过程
  mysql/master
  1.安装mysql
  2.创建数据库,授权
  master
  3.在master上修改配置文件,添加连接数据库的信息。
  4.准备监听even的py脚本,以及插入数据库操作
  5.安装python的mysql模块 MySQL-python
  执行过程
  1.运行监听event,插入数据库操作的脚步,后台运行
  注意:
  脚本是监听了event的信息直接写入到数据库中,和master本身没有关系。
  分组:
  G Grains glob匹配  G@os:Ubuntu

  E PCRE Minion>  P Frains PCRE 匹配 P@os:(RedHat|Fedora|CentOs)
  L Minions列表 L@minion1,minion2,minion3
  I
  S 子网/IP地址匹配 S@192.168.1.0/24 or 192.168.1.100
  配置文件示例:
  nodegroups: (固定语法)
  yz-app: 'E@yz-mob-app*'  (组名: )
  gl-app: 'E@gl-mob-app*'
  app: 'N@yz-app or N@gl-app'
  模块介绍:
  test.ping
  sys.doc 返回帮助信息  salt 'minion' sys.doc
  system
  system.halt
  system.init
  system.poweroff
  system.reboot
  system.shutdown
  status   查看状态
  status.cpuinto
  status.cpustatus
  status.diskstatus
  status.uptime
  service   调用的是/etc/init.d/下某个服务的名字
  service.restart
  service.start
  service.stop
  service.status
  saltutil
  saltutil.is_running
  cmd
  cmd.running   执行命令
  cmd.script   执行脚本
  file   对文件进行管理
  salt命令
  -N 指定组名   salt -N app test.ping
  文件系统
  1.修改配置文件
  2.创建目录
  3.写sls文件
  1.修改配置文件
  vi /etc/salt/master
  file_roots:  固定语法
  base:
  - /srv/salt/
  dev:
  - /srv/salt/dev/services
  - /srv/salt/dev/states
  prod:
  - /srv/salt/prod/services
  - /srv/salt/prod/states
  2.创建目录
  mkdir /srv/salt -p
  3.写sls文件
  cd /srv/salt
  mkdir etc  # 创建目录专门存放配置文件
  cd etc
  mkdir script   # 创建脚本存放的位置
  cd script
  vi test.sh  # 编辑脚本文件,内容如下
  #!/bin/bash
  whilt true
  do
  sleep 1
  echo 1 >> /tmp/log
  done
  salt '*' cmd.script salt://etc/script/test.sh  # 执行文件系统下的sh脚本
  文件系统之同步文件:
  cd /srv/salt
  vi top.sls
  base:  # 固定语法

  '*':     # 你要匹配的minion>  - hosts   # 执行相应的hosts.sls或hosts下的init.sls
  vi hosts.sls
  /tmp/hosts:  #同步到哪里去
  file.managed:  # 使用方法
  - source: salt://etc/hosts  # 服务端文件位置(源文件位置)
  - user: root
  - group: root
  - mode: 600
  # 执行sls的两种方法
  salt '*' state.sls hosts
  或者在salt的更目录创建hosts目录,把hosts.sls移到hosts中
  执行命令为:
  salt '*' state.sls hosts.hosts
  或者把hosts下的hosts.sls文件改名为init.sls,salt会默认执行hosts下的init.sls
  执行命令为:
  slat '*' state.sls hosts
  salt '*' state.highstate
  grains  主要负责采集客户端一些基本信息。可以自定义
  grains的使用
  查看grains
  salt 'salt-client' grains.ls  # 查看机器所有的grains
  salt 'salt-client' grains.items  # 列出grains的名字和对应的值
  salt 'salt-client' grains.item os  # 取指定的grains的值
  salt 'salt-client' grains.item shell
  grains的正则匹配
  salt -G 'os:CentOs' test.ping
  salt -G 'cpuarch:x86_64' grains.item num_cpus
  自定义grains
  在minion上进行配置grains
  grains:  # 固定语法
  roles:
  - webserver
  - memcache
  deployment: detacenter4
  states
  salt状态系统的核心是sls。
  sls表示系统将会是什么样的一种状态,而且是以一种很简单的格式
  来包含这些数据。这经常也被叫做配置管理
  sls文件实际上只是一些:dict,list,str ,int
  YAML 语法
  1.缩进:YAML使用一个固定的缩进风格表示数据层结构关系。salt需要每个缩进级别由两个空格组成。不要使用tabs
  2.Python的字典是简单的键值对。字典的key在YAML中的表现形式是一个以冒号结尾的字符串。values的表现形式冒号下面的每一行,用一个空格隔开
  3.想要表示列表项,使用一个短横杠加一个空格。多个项使用同样的缩进级别作为同一列表的一部分。
  更多关于YAML的使用:http://docs.saltstack.cn/topics/yaml/index.html
  更多的模块说明:http://docs.saltstack.cn/genindex.html#S
  pillar
  可以定义那些数据
  1.敏感信息:ssh key,加密证书。
  2.变量
  3.其他任何数据
  4.targetting
  pillar示例:
  schedult:
  highstate:
  function: state.highstate
  minutes: 1

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-431211-1-1.html 上篇帖子: SaltStack 模块 下篇帖子: Saltstack入门
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表