本节内容
一、 主机管理项目需求分析
二 、主机管理项目架构设计
三、主机管理项目初始构建
四、 主机管理项目编写插件基类
五 、主机管理项目命令分发器
一、 主机管理项目需求分析
配置管理:
1、装上nginx,mysql
2、nginx用我指定的配置文件
3、mysql用户
4、设置一个默认的数据库访问权限
5、启动mysql and nginx
问题:
1、脚本执行出错
2、客户端环境,不相同
3、重复脚本内容
4、无法实现状态管理和检测
解决:
1、标准化
2、客户端最好有个守护进程
二 、主机管理项目架构设计
1、salt架构图
https://docs.saltstack.com/en/getstarted/system/plugins.html
plug-ins(左边):场景可插拔
subsystem-core-subsystem(中间蓝色部分):
- 执行命令
- 分发文件
- 安全存储数据
plug-ins(右边边):
- 通过命令行执行 标准的接口可以进行二次开发
- 可以用什么样的形式去描述机器能认识的
- 任务结果可以存储的
plug-ins(下面)
- 包-变成命令
2、远程执行流程:
流程图(官方图)
流程说明
- 输入一个命令
- 进行用户认证
- 把任务放在控制总线,然后分发给客户端队列
- 客户端判断是配置管理还是远程执行
- 下载配置文件
- 配置文件里的数据提取
- 安全数据(用户名。密码)单独存储
- 状态文件解析编译
- 按照标准的格式返回到时间总线上
- 客户端把执行的结果返回到服务器端把结果展现出来并长期保存
- 把结果展现出来并长期保存
- 当结果返回后出触发任务
3、任务解析实例
apache: #yum 安装 pkg.installed: [] service.running: #apache必须运行 - reload: True - watch: - file: /etc/httpd/conf/httpd.conf #如果配置文件有变更就重启 user.present: - uid: 87 #- username: alex - gid: 87 - home: /var/www/html - shell: /bin/nologin - require: - group: apache group.present: #apache组不存在上面的命令不执行 - gid: 87 - require: - pkg: apache /etc/httpd/conf/httpd.conf: #每执行一次配置文件就更新一次 file.managed: - source: salt://apache/httpd.conf - user: root - group: root - mode: 644
三、主机管理项目初始构建
四、 主机管理项目编写插件基类
五 、主机管理项目命令分发器
时间: 2024-12-16 16:50:05