Openshift-常见运维脚本及问题解决
1.扩容计算结点在执行扩容前需检查扩容节点的以下几点信息:
内核版本
selinux已经开启enforcing
docker数据盘已经就绪
/etc/resolv.conf配置正确
hostname已经设置
时间同步已配置
在每个节点都能解析新增节点的域名,如果是通过/etc/hosts来配置域名解析,需要在配置后重启所有节点的dnsmasq服务
docker证书的问题需要添加到自动化配置中来,特别是私有镜像仓库的证书。有三个地方:
/etc/sysconfig/docker配置,
/etc/pki/ca-trust/source/anchors/目录下的证书,
/etc/docker/certs.d下docker拉取镜像认证证书
123456789101112131415# /etc/ansible/hosts[OSEv3:children]mastersnodesetcdnew_nodes...[new_nodes] ...
使用Ansible-Tower与Jenkins集成实现CI-CD
Ansible Tower是什么?Ansible Tower是一个基于Web的用户界面,提供了IT自动化的企业解决方案。它有一个友好用户的仪表板来管理部署和监控资源。Ansible Tower为Ansible增加自动化,可视化管理和监控能力。
为什么要使用Ansible Tower替换Ansible与Jenkins集成?使用Ansible Tower与Jenkins集成,打开了一个充满可能性的世界。与一篇中介绍的《Ansible与Jenkins集成实现CI/CD》进行比较,它可以从Jenkins中删除很多配置,比如部署应用的服务器的访问配置,管理playbook执行,最重要的是,避免在Jenkins端配置SSH密钥,同时Jenkins不需要知道应用程序的部署服务器地址:它可能位于公有云中,物理机中,甚至是笔记本电脑上的虚拟客户端。 把这些配置与过程都放到Ansible Tower中进行集中管理。
Ansible Tower的组件
Credentials: Ansible Tower在运行作业时,访问Tower外部服务或者连接主机时需要进行身份验证。Credentials ...
自动化工具集(持续更新------)
1. 部署集群kopskubespraykubeoperatork(8s) in d(ocker)
2. 部署应用kustomize
路径名中有/时,使用~1替换123456789101112131415161718kustomization.yaml---apiVersion: kustomize.config.k8s.io/v1beta1kind: Kustomization...patchesJson6902:- target: version: v1 kind: Namespace name: argocd path: patch-namespace.yamlpatch-namespace.yaml---- op: replace path: "/metadata/annotations/iam.amazonaws.com~1allowed-roles" value: > ["arn:aws:iam::12313112:role/argocd"]
kapphelmhelmfileargocd
3. ...
OpenShift压测工作必不可少,使用Jmeter搞起来
毫无疑问OpenShift是一个优秀的容器平台,但是我们有没有想过这些问题呢?OpenShift集群最多能运行多少个容器?每个请求的延时是多少呢?当有大量Pod并发启动时,容器平台是否还能轻松应对呢?等等这些问题在容器平台上生产时,我们都得心里有数。否则随着容器平台的压力不断扩大,到了无法承受之痛时,而我们却毫不知情。那么对OpenShift容器平台做压力测试就成了一项必不可少的工作。但是怎样去做呢?业界使用最多的方法就是用Jmeter来模拟API请求进行压测。
新建测试计划与进程组
创建一个名为”测试OpenShift Api”的Test Plan
右击”测试OpenShift Api”,Add->Threads(Users)->ThreadGroup,创建名为”模拟客户端”的Thread Group
右击”测试OpenShift Api”,Add->Listener->Aggregate Report,创建名为“测试OpenShift API Report”的Aggregate Report
通过模拟请求获取访问OpenShift平台的ACCESS_TOK ...
Airflow简单介绍及测试安装
Airflow 是什么
Airflow 是 Airbnb 开发的用于工作流管理的开源项目,自带 web UI 和调度。它支持编程方式创建工作流,同时在平台上管理和监控工作流程的状态。
Airflow 于 2016 年 3 月加入了 Apache Software Foundation 的孵化计划,所以它未来的持续维护性有保障。
官方地址:https://github.com/apache/airflow,现有11318个star,732个贡献者,是一个热门的开源项目。
先看下这篇介绍 :浅谈调度工具——Airflow
为什么使用 Airflow
智能调度
图形化展示任务关系
程序化流水线定义
流水线间数据交互
扩展性强
分布式,可靠性高
执行方式多样化,除了定时执行还可手动触发,api 触发等
Airflow 常用的场景Airflow 主要用于执行预定的批处理作业。它能够很好地管理不同的批量作业的关系,并给将复杂的关系图形化展示。
系统或运用的日常维护任务,批量作业
CD 部署任务,灰度发布,蓝绿部署等
数据分析,数据流管道管理
一句话:任何批量任务或者需要手动去触发执行的任 ...
Ansible常用模块
lookup 函数在 playbooks 中可以使用一个名为 lookup()的函数,该函数用于 ansible 从外部资源访问数据,根据第一个参数的不同,该函数具有不同的功能,典型的就是读取外部文件内容。lookup()只在本地执行,而不是在远程主机上执行。例子:
123456debug: msg="{{ lookup('file', '/etc/foo.txt') }}"debug: msg="password - {{ lookup('password', '/tmp/random_pass.txt length=10') }}"debug: msg="{{ lookup('env','HOME') }} is an environment variable"debug: msg=&q ...
CI-CD流程-命令行方式与Jenkins-Blue-Ocean方式
命令行模式
环境准备
克隆代码1git clone
启动私有docker hub12 docker run -d -p 5000:5000 -v /data/registry:/var/lib/registry --name registry --restart=always registry
制作建置环境1docker build -t localhost:5000/maven dockers/maven
dockers/maven/Dockerfile
1234FROM ## 安装openjdk## 安装MavenCMD ["mvn"]
集成、测试、验证4. 进行自动化测试
1docker-compose run --rm test
docker-compose.yaml
123456789101112131415161718192021222324data: image: alpine volumes: - ~/.m2:/root/.m2 command: "/bin/bash"install: ...
Elasticsearch-+-Kibana添加到Systemctl
/usr/lib/systemd/system/kibana.service
1234567891011[Unit]Description=Elasticsearch[Service]PIDFile=/home/vagrant/kibana-5.1.1-linux-x86_64/kibana.pidExecStart=/home/vagrant/kibana-5.1.1-linux-x86_64/bin/kibanaUser=vagrantRestart=alwaysLimitMEMLOCK=infinityLimitNOFILE=1048576LimitNPROC=1048576
/usr/lib/systemd/system/elasticsearch.service
1234567891011[Unit]Description=Elasticsearch[Service]PIDFile=/home/vagrant/elasticsearch-rtf/elasticsearch.p ...
Git-+-Jenkins-提交Git-触发Jenkins-Job
利用git的Hook机制
.git/hooks/pre-push123#!/bin/bashecho ====== trigger jenkins job: maglev-verify in 10s =======(sleep 10 && .git/hooks/post-push) &
.git/hooks/post-push123#!/bin/bashbranch=$(git rev-parse --abbrev-ref @{upstream})curl -k --user ${USER}=${TOKEN} http://${JENKINS_URL}/job/${JOB_NAME}/buildWithParameters --data-urlencode TAG=$branch
Gitea访问使用KeyCloak作为用户管理
一、安装keyCloak
二、配置KeyCloak,添加ClientsClients -> createClient ID: devops-oidcEnabled: trueClient Protocol: openid-connectAccess Type: confidentialValid Redirect URIs: /*
三、配置Gitea,添加Authentication SourcesSite Administration -> Authentication Sources -> Add Authentication SourceOAuth2 Provider: OpenID ConnectClient ID(key): devops-oidcClient Secret: <keycload 中 devops-oidc Credentials中查询>OpenID Connect Auto Discovery URL: http:///auth/realms/master/. ...