使用Webmin管理DNS
在企业生产实践中,对于经常进行DNS解析变动的测试环境,Bind9的维护是个不大不小的问题。运维开发通常需要提交相关请求之后,还需要SSH到解析服务器上去进行配置修改,就要开xshell然后登陆找配置项进行变更。为了节约脑力和时间,通过已经添加到导航面板的web gui书签跳转到域名管理平台再进行管理就要快捷一点点。
WebMin为了方便管理DNS解析,我们可以使用Google SRE工程师Jamie Cameron开发的Webmin。这个工具是用perl语言编写的很强大的Linux主机管理面板,支持Linux主机环境的通用程序配置,包括Bind、Apache、MySQL等等。这位老哥还编写了管理虚拟化宿主机和类似cpanle的虚拟主机管理web平台。
安装# 下载安装脚本
curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
# 添加官方repo地址
sh setup-repos.sh
# 执行安装并安装perl的功能模块
dnf makecache
d ...
快速构建实验环境的基础服务
在单机试验环境中,经常需要配置DNS解析、生成SSL证书、保存或者拉取配置脚本,这些操作往往散布到各个节点的实际操作中,较为繁琐且容易出错,所以创建一个虚机镜像来提供统一的服务就是有需求的。以下就是通过在VM上部署实现相关功能的操作实践。
类别
内容
功能
基础架构服务
主机名
infra.contoso.com
IP
192.168.10.254
配置
2core 2G mem 40GB disk
承载服务
DNS以及DNS缓存、时间服务、SSL证书生成和下载、git服务、导航页、Ansible控制台、主机管理
包管理安装主机准备基础环境准备主机环境的准备执行准备:RockyLinux9的主机部署
# 系统更新
dnf makecache
dnf update -y
# 由于主机模板只给了20G硬盘,所以需要扩容
dnf install cloud-utils-growpart-0.33-1.el9.x86_64
growpart /dev/sda 2
lvextend -l +100%free /dev/rl/root
xfs_growfs /d ...
Ansible管理平台AWX的部署
概念K3sK3s 是一个轻量级的 Kubernetes 发行版,非常简单易用而且轻量。只需要一个简单的安装脚本即可把 K3s 安装到主机。
AWXAWX是由Redhat运营的Ansible自动化运营平台Ansible Tower的上游项目,是将Ansible的管理和维护通过可视化的WEB GUI来进行展现。借用Ansible Tower的一张图来表示其具体架构:相关的内容可见以下链接:
Ansible
AWX
由于Ansible AWX平台自v18之后,不在支持单机或者docker部署,要求必须部署到Kubernetes中,为了简化部署环境和步骤,现采用单节点的K3s来作为基础环境部署AWX。
部署环境准备# 本次部署基于RockyLinux 9.2
# 主机配置为2core CPU/4GB MEM/40GB Disk
# 需要提前部署Dokcer和Kubectl
# 设置防火墙
firewall-cmd --set-default-zone=trusted
firewall-cmd --reload
# 关闭selinux
sed -i 's/enforceing/disab ...
安服仔的自我修养
从首都图书馆无意间翻到的一本工具书《深信服安全服务工程师实战》,我实在惊讶于深信服把售前资料从内部文档库里面输出一个PDF就拿来卖钱了。虽然里面有不少的销售话术和广告推销以及前后重复的内容,但不失其为本好的一次性工具书,对于了解乙方的现阶段企业安全建设的思路还是有帮助的。
风险评估风险评估是对一个事件后者事物可能造成的影响或损失造成的影响或损失的程度进行量化。
评估目的
资产识别
平衡安全风险与成本
风险识别
建设指导
业务保障
评估模型评估方式
自我评估
上级主管或者业务主管发起的、基于法规或标准的强制性检查活动
外协专业安全服务组织进行
评估原则
标准化原则
业务主导原则
规划性原则
保密性原则
最小影响原则
互动性原则
评估方法类别
基于知识的分析方法
定性分析方法
定量分析方法
方法
访谈调研
人工审计
工具扫描
渗透测试
评估范围技术评估范围
物理环境
网络结构
主机及数据系统
应用系统
业务流程
管理评估维度
安全管理制度
文档,包括策略、制度、规程、表格、记录
安全管理机构
安全管理的岗位设置、人员配备、授权和审批、沟通
人员安全管理
信息系统用 ...
备份系统Bacula的部署和使用
Bacula 是一款开源的跨平台网络备份工具,提供基于企业级的CS的备份解决方案,可以对数据进行备份、恢复、以及完整性校验。
组件
Director:中央控制程序,管理所有组件
Console:管理控制台
Storage Daemon:负责文件的实际存储和读取,同时对接存储硬盘或者磁带
Catalog:数据库,建立备份文件和存储路径建立索引,支持MySQL、PG和SQLite
File Daemon:客户端程序,负责执行文件的备份、还原和文件传输
部署准备数据库# 安装
dnf makecache
dnf update -y
dnf install -y mariadb mariadb-server mariadb-server
# 指定客户端和服务端使用utf8来访问mariadb
cat > /etc/my.cnf.d/charset.cnf <<EOF
[mysqld]
character-set-server = utf8mb4
[client]
default-character-set = utf8mb4
EOF
# 拉起服务
systemctl ena ...
读书笔记:运维困境与破解之道
物理是由谁来做那些事,类似基础设施架构规划、容量规划、系统运行维护、监控、安装补丁、安全监查、内部工具的开发以及平台管理这些任务仍将存在。运维工程仍将是一个专门的工程态。
职责由于每家公司本质上都是一家软件公司,运维团队支持的应用程序不再仅是次要的、内部使用的。在许多组织中,这些应用程序时收入的驱动因素,是公司盈利能力的核心。随着从内部工具到创收的转变,运维团队需要对所支持的应用程序有更深入的理解,且压力会越来越大。同时,应用程序开发人员需要更详细的了解他们的系统在生产中是如何运行的。随着系统的增长和越来越复杂,在准生产系统中进行全面测试的想法越来越不可行。为了应对挑战,运维与开发都必须了解这个系统是做什么的,然后,他们必须能够确认它确实在做它应该做的事情。没有错误并不意味着事情按预期进行。
DevOpsDevOps目标:
增进团队之间的合作;
减少多余的关卡和交接
用工具以及授权赋能开发团队拥有他们的系统
创建可重复、可预测的流程
共享对应用程序生产环境的责任
DevOps支柱:
文化:建立团队之间新的沟通方式或者团队结构
自动化:把人力投入从琐事中解放出来
度量:判断某件事 ...
读书笔记:GoogleSRE解密
SRE就是让一个软件工程师来主导设计一个新型运维团队的结果
概念SRE: Site Reliability Engineering,SRE是一门工程科学,旨在帮助组织在其基础设施和应用系统中可持续的达成预设的可靠性目标。
前提:
故障是不可避免的,建立错误预算,要以工程视角来理解运维
所有问题都是软件问题、都能用程序来解决,研发软件解决运维问题
SLO的引入
团队人员兼具开发和运维能力,
DevOps文化DevOps是一套有关运维和产品开发之间全生命周期协作的广泛原则。
运维构建自动化的变更流水线,运维搭桥、开发走路
CI/CD工具链:
持续交付
持续集成
原则SRE是一个工作角色,一组有效的实践以及激励这些实践的信念。
做好运维工作,需要采用软件工程的方法来实现
SRE不试图为所有东西提供100%的可用性,接受故障、拥抱故障、解决故障
SRE反对任何不必要的人力接入,要尽可能减少手工操作,运维的时间投入不得超过50%
通过降低失败成本而提升服务效能,SRE并不一定带来可靠性提升,更注重改进改进的速度
与开发共享所有权
SRE倾向关注生产问题而非业务逻辑
SR ...
使用Kind快速部署Kubernetes实验环境
其实就是Docker上面跑了一个Docker
概念Kindkind 即 Kubernetes In Docker,顾名思义,就是将 k8s 所需要的所有组件,全部部署在一个docker容器中,是一套开箱即用的 k8s 环境搭建方案,适用于快速构建本地开发和测试环境。kind 由以下组件构成:
Go packages implementing cluster creation, image build, etc.
A command line interface (kind) built on these packages.
Docker image(s) written to run systemd, Kubernetes, etc.
kubetest integration also built on these packages (WIP)kind 使用 kubeadm 创建和启动群集节点。kind 使用 containerd 作为容器运行时,所以弃用 Dockershim 对 kind 没有影响。
部署环境准备# 本次部署基于RockyLinux 9.2
# 主机配置为2 ...
CI/CD初步
现在利用已有的k8s环境部署一套CI/CD环境
DevOps理解CI/CD,持续集成和持续交付的基本过程包括如下几个步骤:
软件更新或者迭代——Gitlab
新版软件打包成镜像——Jenkins
新的镜像在k8s中集成——Registry
当代码提交到gitlab之后,会立马触发jenkins将新代码编译成镜像,然后再在kmaster上部署新的镜像。
镜像仓库Registry部署# 部署docker并修改docker启动参数
[root@Gitlab ~]# vim /usr/lib/systemd/system/docker.service
# 新增--insecure-registry=192.168.10.9:5000 -H tcp://0.0.0.0:2376
ExecStart=/usr/bin/dockerd --insecure-registry=192.168.10.9:5000 -H tcp://0.0.0.0:2376 -H fd:// --containerd=/run/containerd/containerd.sock
Exec ...