美文网首页
saltstack-的日常使用 (二)

saltstack-的日常使用 (二)

作者: Medivh_ | 来源:发表于2017-10-19 09:33 被阅读12次

更多关注:http://www.mknight.cn/
注意在6和7不同的系统版本,执行的命令是不一样的,比如salt '*' service.restart salt-minion只支持6.

常用命令

查看IP
salt '*' network.interface_ip eth0

管理Key

复制Key

将authorized_keys创建软链到salt://files/keys/

keys:
  file.managed:
    - name: /root/.ssh/authorized_keys
    - source: salt://files/keys/authorized_keys
    - mode: 600
    - user: root
    - backup: minion

backup 将在minion备份,以时间命名,保存在/var/cache/salt/minion/file_backup。如果没有就新建。

file.list_backups 检查备份信息

 salt '*' file.list_backups /root/.ssh/authorized_keys
 [root@test keys]# salt '*' file.list_backups /root/.ssh/authorized_keys
xx-1:
    ----------
    0:
        ----------
        Backup Time:
            Wed Aug 30 2017 15:34:51.097279
        Location:
            /var/cache/salt/minion/file_backup/root/.ssh/authorized_keys_Wed_Aug_30_15:34:51_097279_2017
        Size:
            1479
xx-2:
    ----------
    0:
        ----------
        Backup Time:
            Wed Aug 30 2017 15:34:50.605990
        Location:
            /var/cache/salt/minion/file_backup/root/.ssh/authorized_keys_Wed_Aug_30_15:34:50_605990_2017
        Size:
            1479
    1:
        ----------
        Backup Time:
            Wed Aug 30 2017 15:10:25.541514
        Location:
            /var/cache/salt/minion/file_backup/root/.ssh/authorized_keys_Wed_Aug_30_15:10:25_541514_2017
        Size:
            1219

如果不需要,则可以删除+ 序列号

# salt foo.bar.com file.delete_backup /tmp/foo.txt 0

salt '*' state.sls services.keys.keys

管理其他用户的Key

user_add:
  user.present:
    - name: devlog
    - shell: /bin/bash
    - home: /home/devlog
    - system: True
    - groups:
      - wheel
user_ssh:
  file.directory:
    - name: /home/devlog/.ssh/
    - require:
      - user: user_add
user_keys:
  file.managed:
    - name: /home/devlog/.ssh/authorized_keys
    - source: salt://files/keys/devlog_authorized_keys
    - mode: 600
    - user: devlog
    - require:
      - file: user_ssh

安装服务

yum安装

salt 'docker' state.sls services.redis.redis

redis-install:
  pkg:
    - name: redis
    - installed
redis-data:
  file.directory:
    - name: /opt/redis/data6380
    - makedirs: True
redis-config-dir:
  file.directory:
    - name: /etc/redis
    - makedirs: True
redis-config:
  file.managed:
    - name: /etc/redis/6380.conf
    - source: salt://services/redis/files/6380.conf
redis-service:
  cmd.run:
    - name:  /usr/bin/redis-server /etc/redis/6380.conf

注意:

  • file.directory 是对目录的管理;
  • file.managed是对文件的管理

解压安装

redis_source:
  file.managed:
    - name: /usr/src/redis.2.8.tar.gz
    - unless: test -f /usr/src/redis.2.8.tar.gz
    - source: salt://services/redis/files/redis.2.8.tar.gz
redis_tar:
  cmd.run:
    - cwd: /usr/src
    - name: mkdir /usr/local/redis && tar zxvf redis.2.8.tar.gz -C /usr/local/
    - unless: test -f /usr/src/redis.2.8.tar.gz
    - require:
      - file: redis_source
redis_data:
  file.directory:
    - name: /opt/redis/data6380
    - unless: test -d /opt/redis/data6380
    - makedirs: True
redis_config_dir:
  file.directory:
    - name: /etc/redis
    - unless: test -d /etc/redis
    - makedirs: True
redis_config:
  file.managed:
    - name: /etc/redis/6380.conf
    - source: salt://services/redis/files/6380.conf
redis_service:
  cmd.run:
    - name:  /usr/local/redis/bin/redis-server /etc/redis/6380.conf
    - require:
      - file: redis_data
      - file: redis_config

注意:

  • require 依赖某个state,在运行此state前,先运行依赖的state,依赖可以有多个。满足条件后才执行

模板

配置piller

/srv/pillar
top.sls

base:
 '*':
  - redis

redis.sls

redis:
  HOST: {{ grains['fqdn_ip4'][1] }}
  PORT: 6380

配置文件

daemonize yes
pidfile /var/run/redis/redis{{ PORT }}.pid
port {{ PORT  }}
bind {{ HOST  }}
dir                         /opt/redis/data{{ PORT }}
timeout 0
requirepass                 'XXXXXXXXX'

sls

redis_source:
  file.managed:
    - name: /usr/src/redis.2.8.tar.gz
    - unless: test -f /usr/src/redis.2.8.tar.gz
    - source: salt://services/redis/files/redis.2.8.tar.gz
redis_tar:
  cmd.run:
    - cwd: /usr/src
    - name: mkdir /usr/local/redis && tar zxvf redis.2.8.tar.gz -C /usr/local/
    - unless: test -f /usr/src/redis.2.8.tar.gz
    - require:
      - file: redis_source
redis_data:
  file.directory:
    - name: /opt/redis/data{{ pillar['redis']['PORT'] }}
    - unless: test -d /opt/redis/data{{pillar['redis']['PORT']}}
    - makedirs: True
redis_config_dir:
  file.directory:
    - name: /etc/redis
    - unless: test -d /etc/redis
    - makedirs: True
redis_config:
  file.managed:
    - name: /etc/redis/{{pillar['redis']['PORT']}}.conf
    - source: salt://services/redis/files/redis.conf
    - template: jinja #渲染配置文件,引用变量
    - PORT: {{ pillar['redis']['PORT'] }}
    - HOST: {{ pillar['redis']['HOST'] }}
redis_service:
  cmd.run:
    - name:  /usr/local/redis/bin/redis-server /etc/redis/{{ pillar['redis']['PORT'] }}.conf
    - require:
      - file: redis_data
      - file: redis_config

更多关注:http://www.mknight.cn/

相关文章

  • saltstack-的日常使用 (二)

    更多关注:http://www.mknight.cn/注意在6和7不同的系统版本,执行的命令是不一样的,比如sal...

  • 知识分享之Golang——Gin学习之Router路由的使用(二

    知识分享之Golang——Gin学习之Router路由的使用(二) 背景 知识分享之Golang篇是我在日常使用G...

  • 日常使用

    先用 ps aux |grep tomcat 查看tomcat的 PID 再用 ps -T -p 查看线程 ...

  • 日常使用

    删除提示的方法 删除其中的某一项 用 [键盘] 的上下键选择需要删除的内容,然后执行以下操作:Windows:按下...

  • IP

    一、分类 1、ABC类——日常使用(AB类之间空出的127部分则被单机使用);2、DE类 二、多路由控制 旅行途中...

  • 第二章 python的日常使用

    1、使用python处理文件与文件夹 os.getcwd() 获取当前python程序的运行路径 os.path....

  • GCD应用-Timer

    一、除了NSTimer日常开发使用Timer的时候,经常使用NSTimer,其已经满足觉得部分的日常使用场景。但是...

  • [LevelDB/源码]Batch结构分析

    1.Batch的日常使用 batch的日常使用比较简单,使用Batch是提高leveldb写入性能的一个关键。 本...

  • [iOS]AFHTTPRequestSerializer和AFH

    使用AFNetworking发送网络请求时,默认的请求数据是二进制,返回格式是JSON格式,日常使用过程中可以通过...

  • 如何使用手机闪光灯?

    我们日常生活中使用手机闪光灯需要注意的几点事项: 一、使用闪光灯时尽量选用比较明亮的背景。 二、使用闪光灯自动模式...

网友评论

      本文标题:saltstack-的日常使用 (二)

      本文链接:https://www.haomeiwen.com/subject/xwzyuxtx.html