saltstack-----上线环境篇(一)
程序员文章站
2022-06-30 12:02:16
在11上安装mysql yum install mariadb mariadb-server -y 在mysql的配置文件my.cnf中加入 init_connect='SET collation_connection = utf8_unicode_ci' init_connect='SET NAM ......
在11上安装mysql
yum install mariadb mariadb-server -y
在mysql的配置文件my.cnf中加入
init_connect='set collation_connection = utf8_unicode_ci' init_connect='set names utf8' character-set-server=utf8 collation-server=utf8_unicode_ci skip-character-set-client-handshake
配置完成后启动mysql
第一次登陆mysql前设置密码:
mysql_secure_installation
在所有master和minion端的配置文件最后加入
mysql.host: 172.16.1.11 mysql.user: root mysql.pass: 123456 mysql.db: salt mysql.port: 3306
创建mysql库
create database salt;
创建表
create table `salt_returns` ( `fun` varchar(50) not null, `jid` varchar(255) not null, `return` mediumtext not null, `id` varchar(255) not null, `success` varchar(10) not null, `full_ret` mediumtext not null, `alter_time` timestamp default current_timestamp, key `id` (`id`), key `jid` (`jid`), key `fun` (`fun`) ) engine=innodb default charset=utf8;
在mater和minion端都安装mysql-python
salt '*' cmd.run 'yum install mysql-python -y'
在master端配置py脚本vim salt_event_to_mysql.py
#!/bin/env python #coding=utf8 import json import salt.config import salt.utils.event import mysqldb __opts__ = salt.config.client_config('/etc/salt/master') conn = mysqldb.connect(host=__opts__['mysql.host'], user=__opts__['mysql.user'], passwd=__opts__['mysql.pass'], db=__opts__['mysql.db'],port=__opts__['mysql.port'],charset='utf8') corsor = conn.cursor() event = salt.utils.event.masterevent(__opts__['sock_dir']) for eachevent in event.iter_events(full=true): ret = eachevent['data'] if "salt/job/" in eachevent['tag']: if ret.has_key('id') and ret.has_key('return'): if ret['fun'] == "saltutil.find_job": continue sql = '''insert into `salt_returns` (`fun`,`jid`,`return`,`id`,`success`,`full_ret`) values (%s,%s,%s,%s,%s,%s)''' cursor.execute(sql, (ret['fun'],ret['jid'],json.dumps(ret['return']),ret['id'],ret['success'],json.dumps(ret))) cursor.execute("commit") else: pass
(注意脚本里面mysql连接的地方,conn = mysqldb.connect(host="172.16.1.11",user="root",passwd="930829",db="salt"))
启动脚本
python salt_event_to_mysql.py &
查看mysql情况(在mater中执行了test.ping后在salt_returns表里面有数据表示正常)
minion端分组管理
编辑master配置文件
vim /etc/salt/master nodegroups: test1: 'e@salt-client*' test2: 'e@salt-web*' 正则 test3: 'n@test1 or n@test2' 和 test4 'n@test1 and n@test2' 或
配置完成后在master执行
salt -n test1 test.ping
模块:
查看模块
salt '11' sys.doc
测试批量执行脚本
修改master配置文件
file_roots: base: - /srv/salt dev: - /srv/salt/dev prod: - /srv/salt/prod
创建上述目录
在/srv/salt下创建etc/script目录
在script目录下创建测试脚本
vim test.sh while true do sleep 1 echo 1 > /tmp/log done
在master执行
salt '*' cmd.script salt://etc/script/test.sh
(注意:测试脚本会在minion上/tmp/目录下生成一个tmp开头的脚本文件)
查看正在minion运行的任务
salt '*' saltutil.running
杀掉正在运行的任务
salt '*' saltutil.term_job jid
将master的文件部署到minion上
vim /srv/salt/hosts.sls /tmp/hosts: file.managed: - source: salt://etc/hosts - user: root - group: root - mode: 600
vim /srv/salt/top.sls base: '*': - hosts
(此两个配置文件是将master上的hosts文件部署到minion的/tmp/hosts)
master执行开始部署
salt '*' state.highstate
更改master中的etc/hosts
salt '*' state.sls hosts
再测试一种部署方式
在/srv/salt目录下新建目录hosts(目录名称随意)
将hosts.sls文件复制在该目录下
修改hosts文件
salt '*' state.sls hosts.hosts
将hosts目录下的hosts.sls更名为init.sls
执行
salt '*' state.sls hosts
上一篇: LNMP环境下安装Redis,以及php的redis扩展
下一篇: 经常牙痛吃些什么
推荐阅读
-
CentOS7 LNMP+phpmyadmin环境搭建 第一篇虚拟机及centos7安装
-
eclipse弃坑记第一篇之在idea上配置Tomcat环境并创建Javaweb项目的详细步骤原创
-
搭建一个大型网站架构的实验环境(Squid缓存服务器篇)第1/2页
-
RobotFramework第一篇之环境搭建
-
Python虚拟环境和包管理工具Pipenv的使用详解--看完这一篇就够了
-
我的第一个上线小程序,案例实战篇二——LayaAir游戏开始界面开发
-
Windows实现Flutter环境搭建及配置这一篇就够了
-
黑莓开发第一篇:开发环境的搭建
-
Hadoop入门第一篇——环境配置
-
ES篇(一)--ES在windows环境下的安装