• stackstorm安装 Sky


    stackstorm安装
    
    cd /opt/stackstorm/
    [root@vm2 stackstorm]# ll
    drwxr-xr-x 2 st2  root       6 May  6 02:41 configs
    drwxr-xr-x 2 st2  root       6 May  6 02:41 exports
    drwxr-xr-x 7 root root      80 Aug 13 18:45 mistral
    drwxr-xr-x 2 st2  root       6 May  6 02:41 overrides
    drwxr-xr-x 8 root root      85 Aug 13 21:56 packs
    drwxr-xr-x 7 root root     100 Aug 13 18:17 st2
    drwxr-xr-x 3 root root      19 Aug 13 22:09 static
    drwxrwxr-x 3 root st2packs  17 Aug 13 21:56 virtualenvs
    
    1、 用命令 getenforce 检查SELinux是否在Enforcing 模式
    
    2、如果返回时Enforing,执行命令:
    sudo yum install-y policycoreutils-python  # SELinux管理工具
    sudo setsebool -P httpd_can_network_connect 1  #运行nginx访问网络
    sudo semanage port --list| grep -q 25672 || sudo semanage port -a -t amqp_port_t -p tcp 25672 #运行rabbitmq使用端口25672
    
    3、安装mongodb, rabbitmq和postgresql
    说明: 当前st2支持mongodb版本是 3.4,mongodb 3.4版本支持st2.2.0以上。在1.6.0版本之前的仅仅支持mongodb 2.x。
    sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
    
    获取最新的mongodb版本(3.4):
    rpm --import https://www.mongodb.org/static/pgp/server-3.4.asc
    vi /etc/yum.repos.d/mongodb-org-3.4.repo
    [mongodb-org-3.4]
    name=MongoDB Repository
    baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
    gpgcheck=1
    enabled=1
    gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
    
    yum -y install crudini
    yum -y install mongodb-org
    yum -y install rabbitmq-server
    systemctl start mongod rabbitmq-server
    systemctl enable mongod rabbitmq-server
    
    mongodb Dependency Installed:
    mongodb-org-mongos.x86_64 0:3.4.24-1.el7
    mongodb-org-server.x86_64 0:3.4.24-1.el7
    mongodb-org-shell.x86_64 0:3.4.24-1.el7
    mongodb-org-tools.x86_64 0:3.4.24-1.el7
    
    rabbitmq Installed:
    rabbitmq-server.noarch 0:3.3.5-34.el7
    rabbitmq-server Dependency Installed:
    erlang-asn1.x86_64 0:R16B-03.18.el7                   erlang-compiler.x86_64 0:R16B-03.18.el7
    erlang-crypto.x86_64 0:R16B-03.18.el7                 erlang-erts.x86_64 0:R16B-03.18.el7
    erlang-hipe.x86_64 0:R16B-03.18.el7                   erlang-inets.x86_64 0:R16B-03.18.el7
    erlang-kernel.x86_64 0:R16B-03.18.el7                 erlang-mnesia.x86_64 0:R16B-03.18.el7
    erlang-os_mon.x86_64 0:R16B-03.18.el7                 erlang-otp_mibs.x86_64 0:R16B-03.18.el7
    erlang-public_key.x86_64 0:R16B-03.18.el7             erlang-runtime_tools.x86_64 0:R16B-03.18.el7
    erlang-sasl.x86_64 0:R16B-03.18.el7                   erlang-sd_notify.x86_64 0:0.1-1.el7
    erlang-snmp.x86_64 0:R16B-03.18.el7                   erlang-ssl.x86_64 0:R16B-03.18.el7
    erlang-stdlib.x86_64 0:R16B-03.18.el7                 erlang-syntax_tools.x86_64 0:R16B-03.18.el7
    erlang-tools.x86_64 0:R16B-03.18.el7                  erlang-xmerl.x86_64 0:R16B-03.18.el7
    lksctp-tools.x86_64 0:1.0.17-2.el7
    
    安装redis:
    yum install -y redis
    Installed:
    redis.x86_64 0:3.2.12-2.el7
    Dependency Installed:
    jemalloc.x86_64 0:3.6.0-1.el
    systemctl start redis
    systemctl enable redis
    
    安装postgresql:
    yum -y install postgresql-server postgresql-contrib postgresql-devel
    Installed:
    postgresql-contrib.x86_64 0:9.2.24-8.el7_9
    postgresql-devel.x86_64 0:9.2.24-8.el7_9
    postgresql-server.x86_64 0:9.2.24-8.el7_9
    Dependency Installed:
    postgresql.x86_64 0:9.2.24-8.el7_9
    postgresql-libs.x86_64 0:9.2.24-8.el7_9
    uuid.x86_64 0:1.6.2-26.el7
    
    初始化PostgreSQL:
    sudo postgresql-setup initdb
    确保本地有权限访问pgsql,配置pgsql通过md5加密方式进行通讯:
    sudo sed -i "s/(host.*all.*all.127.0.0.1/32.)ident/\1md5/" /var/lib/pgsql/data/pg_hba.conf
    sudo sed -i "s/(host.all.all.::1/128.)ident/\1md5/" /var/lib/pgsql/data/pg_hba.conf
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    host    all             all             ::1/128                 md5
    
    启动PostgreSQL服务:
    systemctl start postgresql
    systemctl enable postgresql
    
    4、下载stackstorm程序库
    以下脚本将检测您的平台和体系结构并设置适当的StackStorm存储库。 它还将添加用于软件包签名的GPG**。
    curl -s https://packagecloud.io/install/repositories/StackStorm/stable/script.rpm.sh | sudo bash
    -->其实就是配置sackstorm yum源 /etc/yum.repos.d/StackStorm_stable.repo
    
    cat /etc/yum.repos.d/StackStorm_stable.repo
    [StackStorm_stable]
    name=StackStorm_stable
    baseurl=https://packagecloud.io/StackStorm/stable/el/7/$basearch
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    gpgkey=https://packagecloud.io/StackStorm/stable/gpgkey
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    [StackStorm_stable-source]
    name=StackStorm_stable-source
    baseurl=https://packagecloud.io/StackStorm/stable/el/7/SRPMS
    repo_gpgcheck=1
    gpgcheck=0
    enabled=1
    gpgkey=https://packagecloud.io/StackStorm/stable/gpgkey
    sslverify=1
    sslcacert=/etc/pki/tls/certs/ca-bundle.crt
    metadata_expire=300
    
    5、安装stackstorm组件库
    sudo yum install -y st2 
    #RabbitMQ、MongoDB、PostgreSQL如果服务应用在不同服务器上,只需要修改以下配置路径即可
    RabbitMQ  在 /etc/st2/st2.conf 和/etc/mistral/mistral.conf
    MongoDB 在 /etc/st2/st2.conf
    PostgreSQL 在 /etc/mistral/mistral.conf
    
    安装的所有包:
    Installed:
      st2.x86_64 0:3.7.0-2                                                                                           
    
    Dependency Installed:
      keyutils-libs-devel.x86_64 0:1.5.8-3.el7                 krb5-devel.x86_64 0:1.15.1-54.el7_9                  
      libcom_err-devel.x86_64 0:1.42.9-19.el7                  libffi-devel.x86_64 0:3.0.13-19.el7                  
      libkadm5.x86_64 0:1.15.1-54.el7_9                        libselinux-devel.x86_64 0:2.5-15.el7                 
      libsepol-devel.x86_64 0:2.5-10.el7                       libtirpc.x86_64 0:0.2.4-0.16.el7                     
      libverto-devel.x86_64 0:0.2.5-4.el7                      openssl-devel.x86_64 1:1.0.2k-25.el7_9               
      pcre-devel.x86_64 0:8.32-17.el7                          python-rpm-macros.noarch 0:3-34.el7                  
      python3.x86_64 0:3.6.8-18.el7                            python3-devel.x86_64 0:3.6.8-18.el7                  
      python3-libs.x86_64 0:3.6.8-18.el7                       python3-pip.noarch 0:9.0.3-8.el7                     
      python3-rpm-generators.noarch 0:6-2.el7                  python3-rpm-macros.noarch 0:3-34.el7                 
      python3-setuptools.noarch 0:39.2.0-10.el7                zlib-devel.x86_64 0:1.2.7-20.el7_9                   
    
    Dependency Updated:
      krb5-libs.x86_64 0:1.15.1-54.el7_9   openssl.x86_64 1:1.0.2k-25.el7_9   openssl-libs.x86_64 1:1.0.2k-25.el7_9  
      zlib.x86_64 0:1.2.7-20.el7_9 
    
    安装st2mistral:
    yum install -y st2mistral
    Installed:
    st2mistral.x86_64 0:3.2.0-1
    Dependency Installed:
    libyaml.x86_64 0:0.1.4-11.el7_0
    
    
    6、设置数据存储加密
    Key-Value存储方案允许用户存储加密后的Value值。 这些值使用对称加密(AES256)进行存储:
    DATASTORE_ENCRYPTION_KEYS_DIRECTORY="/etc/st2/keys"
    DATASTORE_ENCRYPTION_KEY_PATH="${DATASTORE_ENCRYPTION_KEYS_DIRECTORY}/datastore_key.json"
    
    mkdir -p ${DATASTORE_ENCRYPTION_KEYS_DIRECTORY}
    st2-generate-symmetric-crypto-key --key-path ${DATASTORE_ENCRYPTION_KEY_PATH}
    
    仅仅允许st2用户读取数据
    chgrp st2 ${DATASTORE_ENCRYPTION_KEYS_DIRECTORY}
    chmod o-r ${DATASTORE_ENCRYPTION_KEYS_DIRECTORY}
    chgrp st2 ${DATASTORE_ENCRYPTION_KEY_PATH}
    chmod o-r ${DATASTORE_ENCRYPTION_KEY_PATH}
    
    设置密钥配置,生成一个加密密钥文件,并存放至指定位置。在配置文件中设置key的路径,:
    crudini --set /etc/st2/st2.conf keyvalue encryption_key_path ${DATASTORE_ENCRYPTION_KEY_PATH}
    st2ctl restart-component st2api
    
    7、设置Mistral数据库
    
    通过如下命令来设置Mistral PostgreSQL数据库:
    
    # 在PostgreSQL中创建 Mistral数据库
    cat << EHD | sudo -u postgres psql
    CREATE ROLE mistral WITH CREATEDB LOGIN ENCRYPTED PASSWORD 'StackStorm';
    CREATE DATABASE mistral OWNER mistral;
    EHD
    # 设置Ministral数据库表
    /opt/stackstorm/mistral/bin/mistral-db-manage --config-file /etc/mistral/mistral.conf upgrade head
    # 注册mistral动作
    /opt/stackstorm/mistral/bin/mistral-db-manage --config-file /etc/mistral/mistral.conf populate | grep -v -e openstack -e keystone
    
    
    
    
    8、配置SSH和SUDO
    要运行本地和远程shell操作,StackStorm使用特殊的系统用户(默认为stanley)。对于远程Linux操作,使用SSH。建议在所有远程主机上配置基于公共**的SSH访问。我们还建议配置SSH访问localhost以运行示例和测试。
    创建StackStorm系统用户,启用无密码sudo,并设置对“localhost”的ssh访问权限,以便可以在本地测试基于SSH的操作。
    创建SSH系统用户 (默认stanley 用户已经存在)
    useradd stanley
    mkdir -p /home/stanley/.ssh
    chmod 0700 /home/stanley/.ssh
    
    生成SSH:
    ssh-keygen -f /home/stanley/.ssh/stanley_rsa -P ""
    授权key访问权限:
    sh -c 'cat /home/stanley/.ssh/stanley_rsa.pub >> /home/stanley/.ssh/authorized_keys'
    chown -R stanley:stanley /home/stanley/.ssh
    开启无密码sudo(配置stanley执行sudo免密):
    sh -c 'echo "stanley    ALL=(ALL)       NOPASSWD: SETENV: ALL" >> /etc/sudoers.d/st2'
    chmod 0440 /etc/sudoers.d/st2
    
    Make sure Defaults requiretty is disabled in /etc/sudoers
    sed -i -r "s/^Defaults\s++?requiretty/# Defaults +requiretty/g" /etc/sudoers
    
    在StackStorm将通过SSH运行远程操作的远程主机上配置SSH访问并启用无密码sudo。 使用上一步中生成的公钥,按照配置SSH中的说明操作。 要控制Windows框,请为Windows runner配置访问权限。
    如果使用的是其他用户或SSH密钥的路径,则需要在/etc/st2/st2.conf中修改此部分:
    [system_user]
    user = stanley
    ssh_key_file = /home/stanley/.ssh/stanley_rsa
    
    启动服务:
    启动stackstorm服务: 
    st2ctl start
    注册sensors,rules, actions: 
    st2ctl reload
    
    9、验证服务
    验证stackstorm是否安装成功:
    # st2 --version
    st2 3.7.0, on Python 3.6.8
    
    遍历核心包的所有动作:
    st2 action list --pack=core
    
    # 本地执行一个shell命令:
    st2 run core.local -- date -R
     
    # 查看命令执行结果:
    st2 execution list
     
    # 通过ssh远程执行命令(无密码sudo)
    st2 run core.remote hosts='localhost' -- uname -a
     
    # 安装包:
    st2 pack install st2
    
    #st2ctl相关的控制命令
    #st2ctl start|stop|status|restart|restart-component|reload|clean
  • 相关阅读:
    烯烃(olefin) 题解
    二分图的考验 题解
    树上的好题
    [SDOI2013]直径 题解
    [ZJOI2010]数字计数 题解
    神在夏至祭降下了神谕 题解
    洛谷 P4198 楼房重建 题解
    [HAOI2010]软件安装 题解
    [POI2011]ROT-Tree Rotations 题解
    可并堆之左偏树浅谈
  • 原文地址:https://www.cnblogs.com/skyzy/p/16586792.html
Copyright © 2020-2023  润新知