zoukankan      html  css  js  c++  java
  • 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 
    
  • 相关阅读:
    CF1051F The Shortest Statement 题解
    CF819B Mister B and PR Shifts 题解
    HDU3686 Traffic Real Time Query System 题解
    HDU 5969 最大的位或 题解
    P3295 萌萌哒 题解
    BZOJ1854 连续攻击游戏 题解
    使用Python编写的对拍程序
    CF796C Bank Hacking 题解
    BZOJ2200 道路与航线 题解
    USACO07NOV Cow Relays G 题解
  • 原文地址:https://www.cnblogs.com/jefflee168/p/7420644.html
Copyright © 2011-2022 走看看