zoukankan      html  css  js  c++  java
  • 关于Staltstack

    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:/aid: `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.201

    id: 192.168.1.201

     

    #启动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.201

    id: 192.168.1.202

     

    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

    参考                  官网参考                 官网模块介绍

     

  • 相关阅读:
    简单跨域请求和带预检的跨域请求
    springmvc@RequestMapping-params参数规则
    ocketMQ概念模型
    java agent 详细介绍 -javaagent参数
    Spring使用多个 <context:property-placeholder/>
    什么时候会进行 SpringMVC重定向保存参数(FlashMap)?
    springMVC 数据模型相关注解 可注释类型 ModelAttribute SessionAttributes InitBinder
    Springmvc 异步处理
    Java并发包之阶段执行之CompletionStage接口
    Spring Web Flux 相关概念
  • 原文地址:https://www.cnblogs.com/smlile-you-me/p/11083469.html
Copyright © 2011-2022 走看看