自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 收藏
  • 关注

原创 dapr配置mysql state store(Kubernets)

需要用到helm,如果没装,先安装wget https://get.helm.sh/helm-v3.8.0-linux-amd64.tar.gztar -xzvf helm-v3.8.0-linux-amd64.tar.gz把helm拷贝到PATH中的目录下即可(比如/bin),然后配置repohelm repo add bitnami https://charts.bitnami.com/bitnami安装mysql podhelm install dapr-mysql bitna.

2022-02-23 11:28:21 1907

原创 在k8s集群上安装dapr

1.安装dapr cliwget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash如果raw.githubusercontent.com不能解析,需要改hostsecho "185.199.108.133 raw.githubusercontent.com" >> /etc/hosts官方文档——在k8s集群上初始化dapr2. 初始化daprdapr

2022-02-18 10:01:29 2849

原创 使用kubeadm安装Kubernetes集群(1.23.3)

准备3台虚拟机(CentOS-7.6),在/etc/hosts中增加如下内容172.18.66.201 k8s-master172.18.66.202 k8s-node1172.18.66.203 k8s-node2安装必要的基础工具包,不赘述安装docker-ce的yum repo(所有服务器)wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo /etc/yum.repos.d/docker-c.

2022-02-17 18:33:41 704

原创 ElasticSearch的jvm堆内存设置:真的是越大越好吗?

关于ElasticSearch的堆内存设置,目前大多数的建议是低于32GB,这是由于jvm中有个指针压缩的概念(compressed ordinary object pointers, compressed oops):

2021-10-21 13:59:20 1762

原创 ElasticSearch 7.3堆内存使用率高及频繁触发Data too large熔断问题优化方法

该问题常见于ES7,且低于7.4的ES。国内没有查到相关资料。严重的时候甚至会导致数据节点脱离集群。ES的官方论坛有个2019年的帖子:CircuitBreakingException: [parent] Data too large IN ES 7.xES的这个熔断本来是一种用来防止触发OOM,甚至进程崩溃退出的自我保护机制,其实在日志中看到它并不能算是大问题,但如果出现得太过频繁就不太对劲了,要么是现有集群规模已经撑不起业务量,要么是配置有问题。上面这个帖子中,Henning Andersen提

2021-10-09 10:48:53 2543

原创 CentOS7 Theia安装笔记

用的是个CentOS7的hyperv虚机.下载源码目前最新的release是theia-1.16.0,github下载源码wget https://github.com/eclipse-theia/theia/archive/refs/tags/v1.16.0.zip解压备用环境准备编译过程会用到C++17,CentOS7默认带的是GCC 4.8.5,支持不了的,至少得GCC5以上的版本,因此要升级GCC,直接升整个工具链比较稳妥。yum install centos-release

2021-08-21 12:39:55 780

原创 Spark.Net(C#)Windows开发环境安装配置

微软加入ASF之后.NET生态拓展得越来越好了,可喜可贺。本文基于.NET for Apache® Spark™Java 1.8Apache Spark 2.4.1.NET Framework 4.7.2VS2019java version “1.8.0_301”Java™ SE Runtime Environment (build 1.8.0_301-b09)Java HotSpot™ 64-Bit Server VM (build 25.301-b09, mixed mode)

2021-07-29 15:01:09 1390 1

原创 .NET5(C#) ElasticSearch7 Scroll示例

search_type=scan removedThe scan search type was deprecated since version 2.1.0 and is now removed. All benefits from this search type can now be achieved by doing a scroll request that sorts documents in _doc order, for instance:网上流传的老办法不行了。实际上看,sort.

2021-07-26 18:53:17 374

原创 .NET5(C#) ElasticSearch 7简单读写操作示例

依赖:Elasticsearch.NetNEST直接NuGet安装即可单条插入public static void Insert(string url, string index, object t){ var settings = new ConnectionSettings(new Uri(url)).DefaultIndex(index); var client = new ElasticClient(settings); client.IndexDocum

2021-07-07 17:48:38 374

原创 AntDesignBlazor试用

新建一个Blazor App,命名为BlazorTest.Ant安装依赖打开package manager consoleInstall-Package AntdesignStartup的ConfigureServices方法中加入services.AddAntDesign();_Host.cshtml的<head>中加入 <link href="_content/AntDesign/css/ant-design-blazor.css" rel="styl.

2021-06-08 19:01:15 1976 2

原创 为Ansible配置WinRM的简便方法

Ansible提供了WinRM的配置脚本,在examples/scripts下的ConfigureRemotingForAnsible.ps1,内容几百行,看下面github链接ConfigureRemotingForAnsible.ps1依赖项是不变的,WMF4.0以上。脚本内容还是比较全面的,自签名证书、防火墙的配置,脚本都给办了。缺点是没把Listener的Transport和Port作为选项,是按默认的http 5985和https 5986去配置的。安全要求高的可能要用非默认端口,还得自己改

2021-03-11 17:03:13 759

原创 winrm quickconfig报“无法检查防火墙的状态”

今天在配置winrm的时候一台2008报了个“无法检查防火墙的状态”,查遍中英文网络也没找到靠谱的解法。后来发现是防火墙里一条入栈规则不知为何被禁用了,即“Windows防火墙远程管理(RPC)”这条是预定义规则,不需要修改,直接启用即可。留档备查...

2021-03-11 16:47:26 963

原创 Playwright-python的简单试用

PlayWright简介我是在知乎上看到这个项目的介绍的,比较好奇,就找资料看了一下,试着玩一玩。Github地址:playwright-python根据官方页面的介绍,PlayWright是一个“用于Chromium, Firefox 和WebKit浏览器(引擎?内核?)自动化的,提供统一API的python库”(翻译水平不行,大致是这么个意思)。个人以为,PlayWright的优势在于 - 浏览器支持全面 - 操作系统平台支持全面 - 支持脚本录制试用过程安装步骤参..

2021-02-24 10:21:13 2379 2

原创 Ansible开发实战:加入Task执行过程超时机制

(本文基于Ansible 2.7)在使用ansible执行运维作业的过程中经常会遇到某些目标服务器由于种种五花八门的原因失去响应,尤其是在作业在远端主机执行过程中失去响应的情况,由于本地的子进程无法收到运行结果,可能卡上几天都不退出。例如我们曾经遇到过的,需要在大约15000+虚拟机上执行批量任务,其中两台虚拟机在建立ssh连接时还正常,但随后内存耗尽,远端任务失去响应,这个批量作业最后只能通过...

2020-11-11 09:34:42 5881 6

原创 使用gdb调试python进程

附加到目标进程gdb -p [pid]进入gdb了:需要导入libpython,这里举例的python环境是源码安装3.6.5,libpython.py在源码的Tools/gdb下:(gdb) python>import sys>sys.path.append('/root/Python3.6.5/Tools/gdb')>import libpython>end这时就可以输入调试命令了,python常用的py-list,py-bt,py-bt-full等。如果

2020-10-15 15:22:39 1553

原创 Kombu实现RabbitMQ的可靠消息发布(confirm机制)

先上结论:from kombu import Connectionproducer = Connection('amqp://guest:[email protected]:5672/',transport_options={'confirm_publish': True}).Producer()producer.publish('test confirm publish message','my_exchange')Kombu没有显式实现confirm的消息机制,应该是因为支持了大量的常用消息中

2020-08-20 19:29:13 996

原创 Ansible源码解析: Failed to change ownership of the temporary files错误

[本文基于Ansible 2.7]设置切换用户执行后,某任务报出以下错误:Failed to change ownership of the temporary files Ansible needs to create despite connecting as a privileged user. Unprivileged become user would be unable to read the file.看起来是说无法修改远程临时目录的属主。直接在源码中搜索错误信息,找到如下代码:an

2020-07-13 17:40:02 1966

原创 【笔记】Kafka安装及基本配置过程(单个节点)

OEL7(RHEL7/CENTOS7)JDK1.8Kafka 2.12-2.3.1(自带zookeeper 3.4.14)配置并启动zookeeper修改config/zookeeper.properties(如有需要):dataDir=/xxx/xxx/xxxmaxClientCnxns=0clientPort=2181后台启动zookeeper(脚本在bin目录下):n...

2020-05-06 13:53:12 211

原创 解决Ansible远程执行无法加载环境变量的问题

在18年冬天的一篇关于编些Action Plugin的文章中讨论过关于Ansible远程执行无法加载环境变量的问题(Ansible开发实战: 基于command模块的Oracle Listener控制模块(附趟雷过程及样例))其中引用了 huangwjwork的一篇文章关于ansible远程执行的环境变量问题(login shell & nonlogin shelll)。这篇文章讨论了lo...

2020-03-14 14:19:10 3571 2

原创 Ansible 开发实战:多个TaskQueueManager并行运行时本地临时目录丢失的问题

(本文基于Ansible 2.7)TaskQueueManager是Ansible调度play的基本执行单元,如果有多个TaskQueueManager并行运行,并且按照ansible官方给出的API示例清理本地的临时目录:shutil.rmtree(C.DEFAULT_LOCAL_TMP, True)可能会造成FileNotFoundErrorFileNotFoundError: [...

2020-02-21 17:30:56 1390 2

原创 使用Ansible管理Windows:WMF安装、WinRM配置说明及Ansible调用举例

环境准备Ansible通过WinRM(Windows Remote Management)和PowerShell管理Windows服务器:WinRM is a management protocol used by Windows to remotely communicatewith another server. It is a SOAP-based protocol that com...

2020-02-14 11:42:24 2538

原创 EntityFrameworkCore 2.2访问Oracle数据库(DataBase First)

Nuget安装依赖:Package Manager Console,default project选定目标project,安装Oracle.EntityFrameworkCoreOracle.EntityFrameworkCoreMicrosoft.EntityFrameworkCore.Relational (2.2.0)Oracle.ManagedDataAccess.Core (2...

2019-12-09 18:08:28 616

原创 Ansible 2.9.0 新增的 throttle 关键字

Ansible 2.9的CHANGELOG里是这么描述的:- Added new `throttle` keyword, which can be used at the task, block, or play level to limit the number of workers (up to the specified forks or serial setting) allowed....

2019-11-01 17:45:52 1592

原创 Ansible 性能优化(二):调整DEFAULT_INTERNAL_POLL_INTERVAL参数,降低结果处理轮询的频率

(本文基于Ansible 2.7)在base.yml中对DEFAULT_INTERNAL_POLL_INTERVAL参数是如下定义的:DEFAULT_INTERNAL_POLL_INTERVAL: name: Internal poll interval default: 0.001 env: [] ini: - {key: internal_poll_interval, ...

2019-11-01 16:42:52 2346

原创 Ansible 性能优化(一):降低工作进程(Worker Process)列表检查频率

(本文基于Ansible 2.7)在Ansible 源码解析:forks并发机制的实现一文中,我们分析了Ansible工作进程的启动和并发机制,本文不再赘述。本文主要探讨StrategyBase._queue_task方法中检查TaskQueueManager._workers是否有空闲槽位来容纳新的工作进程的轮询过程。 while True: worke...

2019-11-01 16:17:05 1093

原创 Jinja2模板部分渲染

此类需求可能在利用一个模板定制新模板时遇到默认情况下构造一个模板,只提供部分模板定义的变量值:from Jinja2 import Templatetemplate = Template('{{var1}} and {{var2}}')print(template.render({'var1':'val1'}))Jinja2会将未提供的值按照空字符串处理,输出如下:val1 and...

2019-09-17 09:50:03 801

原创 【讨论】Ansible登录凭证的选择:是预分发公钥免密登录,还是使用用户名+口令?

本文将从安全性、便捷性和可维护性三个方面探讨Ansible登录凭证的选择问题:安全性预分发公钥到目标服务器优点和缺点都是一样的,即目标环境的安全性取决于ansible所在宿主机的安全性。宿主机一旦被攻破,则全环境都沦陷。但假设我们可以保证宿主机的安全,则目标环境的口令设置上就可以有相当高的自由度,甚至可以完全随机获得极高强度的口令,而不用考虑口令记录和存储的问题。宿主机的安全加固目标...

2019-06-18 01:50:15 338

原创 Ansible 源码解析:动态清单(Inventory)中添加Host不能被all分组识别的问题分析

(本文基于Ansible 2.7)在Ansible API: 动态清单(Inventory)的使用一文中,我们讨论了纯动态清单的使用,其中提到,简单的添加Host到Inventory中,这些Host并不能通过在playsource中指定hosts=‘all’取到#假设我们有一个IP地址的列表(这个列表可以通过合适的其他服务获得,或者从数据库直接查询) host_list = ['192.16...

2019-06-18 00:17:00 1982 3

原创 Ansible源码解析:在动态清单中使用Host Variable存储ssh登录凭证

(本文基于Ansible 2.7)前两天有位朋友问到是否可以使用用户名+口令的登录方式来代替预先分发RSA公钥到目标主机以实现免密登录的方式,这无疑是可以的,而且很简单。只需要在Inventory中给host增加两个variable,它们分别是:ansible_ssh_useransible_ssh_pass并安装sshpass包,以便使用非交互的方式提供登录口令。在lib/ansi...

2019-06-14 00:15:07 620

原创 Ansible开发实战:在结果输出Action Plugin的名称

(本文基于Ansible 2.7)在Ansible开发实战:解决callback中只能识别原生模块名称的问题一文中,我们讨论了如何向Ansible的Callback中传递Action Plugin的名字。当时的做法是通过修改Plugin的源代码显式地修改任务运行结果,增加一个新的字段并赋值。这样做的缺陷是每个新编写的Plugin都需要重复以上操作,十分麻烦。当然,在有明确要求不得修改Ansib...

2019-05-13 20:57:13 1187

原创 Ansible开发实战:解决callback中只能识别原生模块名称的问题

(本文基于Ansible 2.7)近来在开发过程中遇到一个问题:所有基于command模块编写的action plugin在callback中取result._task_fields[‘action’],均被识别为command模块。这个问题虽然并不影响任务执行,但对后期的数据收集、统计和分析造成了麻烦,无法进行更细致的分类查询。在Ansible 源码解析: shell模块的实现方式和Ans...

2019-04-22 11:39:29 524

原创 Ansible源码解析:配置的读取和使用

其中C是lib/ansible/constants.py,在:lib/ansible/cli/__init__.py 的第36行有声明。from ansible import constants as C但constants中并没有显式声明DEFAULT_FORKS常量。我们通过阅读文档,或查看ansible的帮助,可以知道默认的并发进程数是5,这个默认值可以通过编辑lib/ansible/...

2019-04-12 11:27:41 1481

原创 Ansible 源码解析:forks并发机制的实现

(本文基于Ansible 2.7)forks选项是Ansible原生支持的一种支持并发执行的方式,可以通过配置文件指定默认值,可以在运行ansible时指定,也可以在调用ansble API做开发时赋值。forks选项的接收和处理在lib/ansible/cli/__init__.py 的442-444行: if fork_opts: parser.ad...

2019-04-11 19:50:33 3391

原创 Ansible 源码解析: Ansible的运行过程

(本文基于Ansible 2.7)Ansible的程序入口在bin目录下,此目录下共有ansibleansible-configansible-connectionansible-consoleansible-docansible-galaxyansible-inventoryansible-playbookansible-pullansible-testansible-...

2019-04-11 18:58:42 1923

原创 XEN 4.1.0 PVOPS设置和启动中遇到的一些问题

XEN 4.1.0 PVOPS设置和启动中遇到的一些问题 前段时间由于一些特殊的需求,需要使用2.6.39版本的linux内核安装xen,遇到了一些问题,总结一下。 第一步下载内核,www.kernel.org,我当时用的是rc-3版本的内核。解压,OK。 第二步配置内核,进入解压后的内核目录,make menuconfig进入配置界面,具体配置参考htt...

2019-01-09 13:02:28 309

转载 【转载】学习授权表(Grant Tables)

【转载】学习授权表(Grant Tables)这篇文章会用-小段代码描述以下的内容:- 两个Domain之间的内存页共享, Doamin0和DomainU- 在这个页中设置一个共享ring- 为共享ring设置event channel- 在Dom0和DomU之间来回传递一些信息介绍在xen中的虚拟机被称为Domain. Domain0(Dom0)是特别的并拥有与正实设...

2019-01-09 13:02:23 1011

原创 XEN PV Guest的创建

XEN PV Guest的创建 需要先安装xen-toolsapt-get install xen-tools使用xen-create-image命令创建虚拟机xen-create-image --hostname=ubuntu1 --size=3Gb --memory=512mb --arch=i386 --kernel=/boot/vmlinuz-2.6...

2019-01-09 13:02:21 372

原创 XEN中ACM模块编译注意事项

XEN中ACM模块编译注意事项 在默认设置下,ACM模块是不被编译和加载到内核中的。如果需要编译该模块,需要手动修改根目录下的Config.mk文件# Enable XSM security module.  Enabling XSM requires selection of an # XSM security module (FLASK_ENABLE o...

2019-01-09 13:02:18 311

转载 【转载】XEN添加和调用Hypercall

【转载】XEN添加和调用Hypercall在linux系统中添加新的系统调用,一般需要三个步骤:1. 注册新的系统调用号2. 更新系统调用表3. 添加新函数在xen中添加一个 hypercall,类似于在linux中添加一个系统调. 基本上也是上面几个步骤。现在举个具体的例子:比如我们要在xen中添加一个打印消息的hypercall,参数有一个,类型为char*, 代表我们要...

2019-01-09 13:02:14 338

原创 SilverLight动态调用WebService的方法

SilverLight动态调用WebService的方法 在我们添加Service Reference的时候,可能不知道该服务最终会被部署到什么位置,或者该服务可能被迁移,此时我们可以使用以下手段进行Service的调用,提高代码编写的灵活性。步骤1:修改宿主Web页面的代码,将服务地址以初始化参数方式传入.&lt;form id="form1" runat...

2019-01-09 13:02:11 305

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除