• saltstack实战


    一、通过远程命令来管理minion

      1、 sal远程执行命令由五部分组成

        第一部分:salt命令本身

        第二部分:命令行选项

        第三部分:目标定位字符串

        第四部分:salt模块函数

        第五部分:远程执行函数

      如下示例:

    $ sudo salt –summary “*” cmd.run “uptime”
    

      2、  全局匹配,用“*”表示

    # “*”表示所有主机
    $ sudo salt “*” test.ping 
    

      3、 显示进程总数

    $ sudo salt ‘*’ cmd.run_all ‘ps -aux| wc -l’
    

      4、 安装包管理

        1) 显示安装包

    $  sudo salt 'node1' pkg.install 'httpd'
    

        2) 显示安装包版本

    $ sudo salt 'node1' pkg.version 'httpd'
    

        3) 远程查看httpd 进程

    $ sudo salt 'node1' cmd.run 'ps -aux|grep ssh|grep -v grep'
    

      5、 文件模块管理

        1) 文件信息查询

    $ sudo salt 'node1' file.stats /etc/hosts
    

        2) 修改目录属主与组

    $ sudo salt 'node1' file.chown  /home/jeff/test root root
    

      6、 用户管理模块

        添加用户格式:salt '*' user.add name <uid><gid><groups><home><shell>

        1) 添加用户

    $ sudo salt 'node1' user.add 'test'
    

        2) 删除用户

    $ sudo salt 'node1' user.delete  'test'
    

        3) 查看用户信息

    $ sudo salt 'node1' user.info root
    

    二、分组管理

      1、修改/etc/salt/master

    $ sudo vim /etc/salt/master
    
    【vim /etc/salt/master】
    
    nodegroups:
    #  group1: 'L@foo.domain.com,bar.domain.com,baz.domain.com and bl*.domain.com'
    #  group2: 'G@os:Debian and foo.domain.com'
       # 以下两行是我自定义的组
       group1: 'L@node1,node2'
       group2: 'L@node3,node4'
    

       

      2、重启服务

    $ sudo systemctl restart salt-master
    

       3、测试连接

    $ sudo salt -N group1 test.ping
    

     

    三、通过state定义主机状态

      1、 撰写第一条状态:创建apache.sls

    #创建salt目录
    $ sudo mkdir -p /srv/salt
    $ sudo vim /srv/salt/apache.sls
    
    【/srv/salt/apache.sls】
    
    install_httpd:
      pkg.installed:
        - name: httpd
    

      2、 安装httpd

    $ sudo salt '*' state.sls apache
    

    四、状态配置文件的各个要素

      1、 规则一:缩进

      YAML使用了一个固定的缩进风格来表示数据库层结构关系。Salt中的每个级别间缩进两个空格,而且不能使用tab键,例如:

    install_httpd:
      pkg.installed:
        - name: httpd
    

      2、 规则二:冒号

      Python的字典理所当然是简单的键值对。

      3、 规则三:短横杠

    #用一个短横杠+一个空格来表示列表项,多个项目使用同样的缩进级别,比如:
     - list_value_one
     - list_value_two
     - list_value_three
    

       

      4、 用require来定义状态执行的优先级(先安装httpd才能开启服务)

    install_httpd:
      pkg.installed:
        - name: httpd
    
    httpd_running:
      service.running:
        - name: httpd
        - enable: True
        - require:
          - pkg: install_httpd
    

    五、通过state部署LAMP环境

      1、创建lamp.sls文件

    $ sudo vim /srv/salt/lamp.sls
    

     -------------------------------------------------->

    【srv/salt/lamp.sls】

    install_httpd: pkg.installed: - name: httpd httpd_running: service.runing: - name: httpd - enable: True - require: - pkg: install_httpd - watch: - file: httpd_conf - file: php_conf httpd_conf: file.managed: - name: /etc/httpd/conf/httpd.conf - source: salt://httpd.conf install_php: pkg.installed: - name: php_all - pkgs: - pcre - gcc-c++ - zlib - zlib-devel - php - php-mysql - php-common - php-gd - php-mbstring - php-mcrypt - php-devel - php-xml - require: - pkg: install_httpd php_conf: file.managed: - name: /var/www/html/index.php - source: salt://index.php - user: root - group: root - mode: 755 install_mariadb: pkg.installed: - name: mariadb - pkgs: - mariadb - mariadb-server mysql_running: service.running: - name: mariadb - enable: True httpd_running: service.restart: - name: httpd

      2、将事先准备好的index.php和httpd.conf复制到 /srv/salt 目录下

    $ sudo cp index.php httpd.conf /srv/salt/
    

           3、运行lamp.sls

    $ sudo salt '*' state.sls lamp 
    
  • 相关阅读:
    SpringMVC什么时候配置 视图解析器
    打印数组的5种方式
    集合区别(list和linkedlist的区别)?
    回归测试
    dom4j组装xml 以及解析xml
    java操作文件创建、删除
    powerdesigner里的table背景色是不是可以修改的?
    如何设定editplus为txt默认打开程序?
    PowerDesigner怎样才能在修改表的字段Name的时候Code不自动跟着变
    PowerDesigner怎么调出工具箱?
  • 原文地址:https://www.cnblogs.com/jefflee168/p/7420644.html
Copyright © 2020-2023  润新知