如何编写Shell脚本
从这里开始书写格式12345678910111213#!/bin/bash# 解释器<<COMMENTAuthor: sujxDate: 2023-09-23Version: 1.0Description: This is my first script.COMMENT# 多行注释echo "Hello World!"# 单行注释 执行方式 脚本没有执行权限 1234[sujx@LEGION:~]$ bash first.shHello World![sujx@LEGION:~]$ source first.shHello World! 脚本有可执行权限 12345[sujx@LEGION:~]$ chmod +x first.sh[sujx@LEGION:~]$ ./first.shHello World![sujx@LEGION:~]$ /home/sujx/first.shHello World! 开启子进程执行 123456789101112131415161718[sujx@LEGION:~]$ cat...
使用Webmin管理DNS
在企业生产实践中,对于经常进行DNS解析变动的测试环境,Bind9的维护是个不大不小的问题。运维开发通常需要提交相关请求之后,还需要SSH到解析服务器上去进行配置修改,就要开xshell然后登陆找配置项进行变更。为了节约脑力和时间,通过已经添加到导航面板的web gui书签跳转到域名管理平台再进行管理就要快捷一点点。 WebMin为了方便管理DNS解析,我们可以使用Google SRE工程师Jamie Cameron开发的Webmin。这个工具是用perl语言编写的很强大的Linux主机管理面板,支持Linux主机环境的通用程序配置,包括Bind、Apache、MySQL等等。这位老哥还编写了管理虚拟化宿主机和类似cpanle的虚拟主机管理web平台。 安装12345678910111213141516# 下载安装脚本curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh# 添加官方repo地址sh setup-repos.sh#...
快速构建实验环境的基础服务
在单机试验环境中,经常需要配置DNS解析、生成SSL证书、保存或者拉取配置脚本,这些操作往往散布到各个节点的实际操作中,较为繁琐且容易出错,所以创建一个虚机镜像来提供统一的服务就是有需求的。以下就是通过在VM上部署实现相关功能的操作实践。 类别 内容 功能 基础架构服务 主机名 infra.contoso.com IP 192.168.10.254 配置 2core 2G mem 40GB disk 承载服务 DNS以及DNS缓存、时间服务、SSL证书生成和下载、git服务、导航页、Ansible控制台、主机管理 包管理安装主机准备基础环境准备主机环境的准备执行准备:RockyLinux9的主机部署 12345678910111213141516171819202122232425# 系统更新dnf makecachednf update -y# 由于主机模板只给了20G硬盘,所以需要扩容dnf install cloud-utils-growpart-0.33-1.el9.x86_64growpart /dev/sda 2lvextend -l...
Ansible管理平台AWX的部署
概念K3sK3s 是一个轻量级的 Kubernetes 发行版,非常简单易用而且轻量。只需要一个简单的安装脚本即可把 K3s 安装到主机。 AWXAWX是由Redhat运营的Ansible自动化运营平台Ansible Tower的上游项目,是将Ansible的管理和维护通过可视化的WEB GUI来进行展现。借用Ansible Tower的一张图来表示其具体架构:相关的内容可见以下链接: Ansible AWX 由于Ansible AWX平台自v18之后,不在支持单机或者docker部署,要求必须部署到Kubernetes中,为了简化部署环境和步骤,现采用单节点的K3s来作为基础环境部署AWX。 部署环境准备12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879# 本次部署基于RockyLinux 9.2# 主机配置为2core...
安服仔的自我修养
...
备份系统Bacula的部署和使用
Bacula 是一款开源的跨平台网络备份工具,提供基于企业级的CS的备份解决方案,可以对数据进行备份、恢复、以及完整性校验。 组件 Director:中央控制程序,管理所有组件 Console:管理控制台 Storage Daemon:负责文件的实际存储和读取,同时对接存储硬盘或者磁带 Catalog:数据库,建立备份文件和存储路径建立索引,支持MySQL、PG和SQLite File Daemon:客户端程序,负责执行文件的备份、还原和文件传输 部署准备数据库12345678910111213141516171819202122232425262728293031# 安装dnf makecachednf update -ydnf install -y mariadb mariadb-server mariadb-server# 指定客户端和服务端使用utf8来访问mariadbcat > /etc/my.cnf.d/charset.cnf <<EOF[mysqld]character-set-server =...
使用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...
CI/CD初步
现在利用已有的k8s环境部署一套CI/CD环境 DevOps理解CI/CD,持续集成和持续交付的基本过程包括如下几个步骤: 软件更新或者迭代——Gitlab 新版软件打包成镜像——Jenkins 新的镜像在k8s中集成——Registry 当代码提交到gitlab之后,会立马触发jenkins将新代码编译成镜像,然后再在kmaster上部署新的镜像。 镜像仓库Registry部署12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849# 部署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...
Kubernetes高级概念
安全管理kubeconfig文件是指用于登陆的文件,默认是指~/.kube/config。这个文件是在刚装好kubernetes集群后按提示复制过来的,它和/etc/kubernetes/admin.conf是一样的,里面包括了集群的地址、admin用户以及各种证书和密钥的信息。创建kubernetes集群时,文件中的admin已被授予最大权限。 123456789101112131415161718192021# 只要有了admin.conf文件就可管理集群[root@kmaster ~]# sz /etc/kubernetes/admin.conf # Windows系统部署kubectl也可管理PowerShell 7.3.7PS C:\Users\root> kubectl get nodes --kubeconfig=admin.confNAME STATUS ROLES AGE VERSIONkmaster Ready ...