Frank

Frank

[间歇更新中]2021日常工作中的知识点与体系备忘录(附2020)

我健忘 为了避免年底时浑浑噩噩忘了自己做了看了什么 这里做个备忘录 2021 [April, May] * 写一篇关于interface的 * 写一篇关于context的 * 写一篇关于断言的 * 写一篇关于反射的 * 写一篇HTTP header头的 * 写一篇关于HTTPS的 * 写一篇关于解析JSON的 * 写一篇关于Goroutine的 * 写一篇关于Cronjob的 * 写一篇释放map内存的 * 写一篇数据库锁的 * 写一篇包循环引用的 * 写一篇dns cachining 2020 [January] * 部署方式及其优缺点:滚动,蓝绿,红黑,灰度,AB,金丝雀 * 由memcached问题引发的对于systemd, journal, service, logrorate, rsyslog的知识点 * 由ldap服务器故障引起的Linux swap和的process终止等的知识点 * 从CDN Distribution到API GW到LB到Container的细节实现打通 * Kubernetes的stateful相关的知识点 [
6 min read

面向对象的三个基本特征和五种设计原则(转载)

面向对象的三个基本特征是:封装、继承、多态。 封装/Encapsulation 封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。 继承/Inheritance 面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。 通过继承创建的新类称为“子类”或“派生类”。 被继承的类称为“基类”、“父类”或“超类”。 继承的过程,就是从一般到特殊的过程。 要实现继承,可以通过“继承”(Inheritance)和“组合”(Composition)来实现。 在某些 OOP 语言中,一个子类可以继承多个基类。但是一般情况下,一个子类只能有一个基类,要实现多重继承,可以通过多级继承来实现。 继承概念的实现方式有三类:
11 min read

2020延续2019延续2018自己感兴趣的一些小项目

写出来会让脉络更清晰一些。 Homekit with Rpi and RF for Dyson Fan control,and human detection sensor 功能:语音控制Dyson的风量,旋转和定时。人不在位置15分钟后关机。 K8s on Rpi 功能:搭建一个K8s Cluster. 争取用上Prometheus和Grafana。 基于Raspberry Pi和Alexa Voice Service的样品机 功能:入门版智能音箱 工具:Raspberry Pi, AVS 四轴飞行器样机 功能:普通飞行,悬停 Pixhawk相关 更新:买了个prototype,可以玩起来了 Solar Tracker 功能:自动追踪太阳能 工具: 自平衡小车 功能:
1 min read

[Linux]PAM与NSS(施工中)

因为SSSD配置的关系,涉及到PAM与NSS。一坑未平,一坑又起,特此记录。 https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system-level_authentication_guide/pluggable_authentication_modules References: https://unix.stackexchange.com/questions/166134/basic-explanation-on-nss-ldap-and-pam https://serverfault.com/questions/538383/understand-pam-and-nss https://community.cloudera.com/t5/Community-Articles/How-PAM-NSS-SSD-work-together-on-Linux-OS/ta-p/247879
1 min read

[Linux]sssd实现登录验证以及对应用户home directory的overwrite

起因是用户想更改用sssd登录用户的home directory的路径,解决了的同时就想顺便梳理一下相关知识,特此记录。 sssd实现登录验证 sssd是Linux6起加入的一个守护进程,可以用来访问多种验证服务器,比方LDAP, Kerberos等,并提供授权。它是介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD, 再由SSSD联系外部资源提供者。 这样做的优势: 1. 避免每个本地应用都对认证服务器大量连接。所有本地程序仅联系SSSD,由SSSD连接认证服务器或SSSD缓存,有效的降低了负载。 2. 允许离线授权。SSSD可以缓存远程服务器的用户认证身份,这允许在远程认证服务器宕机时,继续成功授权用户访问必要的资源。 SSSD不在local system生成用户账户,而是从远程服务器获取身份信息。它同时也为一些system services提供缓存,比如Name Service Switch (NSS) 或 Pluggable Authentication Modules (PAM)。 SSSD默认配置文件:/etc/sssd/sssd.conf,
3 min read

[Linux]SSH无法远程登录问题常用排查技巧

之前遇到过无法使用ssh远程登录的问题(可以root后su),原因是漏添加了/etc/shadow中的记录。还遇到过ssh登录被拒,原因是启用iptables后block了ssh的port。 在诊断这些问题时,查找资料看到了一些常用的排查时需要注意的地方,特此记录。 1. 目标主机的ssh server程序是否安装,服务是否启动,是否在侦听22端口。SSH Service down, check the SSH daemon: sudo service ssh status 2. 是否允许该用户登录 3. Wrong credentials: hostname, username, password, port,错一不可。 4. 要用的port closed: sudo netstat -plnt 5. 本机是否设置了iptables规则,禁止了ssh的连入练出 sudo iptables -L 6. 检查ssh配置文件/
1 min read

[Linux]Linux中的/etc/passwd和/etc/shadow

因为最近工作中遇到,选择了手动在/etc/passwd中添加用户,忘了编辑/etc/shadow,导致无法使用目标账号远程登陆,特此写文夯实基础。 /etc/passwd /etc/passwd 文件是一个纯文本文件,对所有用户可读。你可以用任何文本编辑器在/etc/password文件里直接手动进行用户管理(比如添加、修改或删除用户账户)。但这样做极其危险。如果/etc/passwd文件出现损坏,系统就无法读取它的内容了,这样会导致用户无法正常登录(即便是root用户)。用标准的Linux用户管理工具去执行这些用户管理功能就会安全许多。 每行采用了相同的格式: name:password:uid:gid:comment:home:shell 比如: jenkins:x:164:117:Jenkins Automation Server:/static/jenkins_slave/appsec-jenkins-s111:/bin/bash
3 min read

[Jenkins]Jenkins集群搭建, HTTPS和LDAP集成

接到需求,要搭建一个新的Jenkins集群,需要: * 1 Master with 2 Slaves * HTTPS * LDAP集成 * 运行SAST,DAST管线 * 更换Jenkins Home Directory(后续发现的需求) Mirror遇到一点问题 系统用的是RHEL7/CentOS7 搭建Master Server HTTPS连接 网络团队设置Load Balancer指向了Master Server, 并且做了SSL offload, 所以指向LB Port 443的traffic会decode SSL然后送去Server的Port 80。这种情况下,我们只要让Jenkins在Port 80跑就可以了。 1. Ensure that iptables has allowed traffic on port 80 and 8080. iptables -L -n
6 min read

Subscribe to 隅

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe