原来使用Windows Server 2012搭建的AD,把gitlab、jenkins、pve等都集成了,与OpenLDAP比起来的确方便很多,但是查看了下插座上的功耗,一台Windows Server 2012将近有15W(另外四台Linux加起来才15W)。萌生了将它替换成Linux的想法,DNSmasq用作DNS和DHCP的,OpenLDAP用于代替Active Directory,结果被memberOf卡住了(很多场景下,我们需要快速的查询某一个用户是属于哪一个或多个组的(member of)。memberOf 正是提供了这样的一个功能:如果某个组中通过 member 属性新增了一个用户,OpenLDAP 便会自动在该用户上创建一个 memberOf 属性,其值为该组的 dn。)。用惯容器的我,不想使用传统部署,结果osixia/openldap的镜像折腾半天也还是没开启memberOf,最终放弃了。
古老的2003
参考Proxmox上的文章部署了Windows Server 2003,功耗出奇的低,几乎与一台Linux持平,版本么的确是旧了点,功能满足且简单即可。
注意事项
使用virtio dirvers获得最好的性能,这里包括virtio storage drivers和virtio nic drivers;
电源管理
enable (Start -> Run -> secpol.msc -> "Security Settings\Local Policies\Security Options")
"Shutdown: Allow system to be shut down without having to log on".
"Interactive logon: Do not require CTRL+ALT+DEL".
disable logon screen screensaver using regedit.
安装virtio驱动
创建VM的时候选择VirtIO SCSI和VirtIO半虚拟化,并挂载ISO镜像,启动VM在PVE后台获取启动命令。
停止VM后,使用获取的命令加-fda。
安装系统的过程中会提示未发现SCSI硬件驱动,我们手动加载x64位的,并在提示未签名的驱动时,选择继续安装。等待进入系统后,安装VirtIO网卡驱动。
导入AD信息至PVE中
AD结构设计:Users OU -> VMAdmins GROUP,该组内的账号都是PVE的管理员。
添加验证方式
Datacenter -> Permissions -> Realms -> Add -> LDAP Server
General
Realm: devops.local
Server: Your server ip
Base Domain Name: CN=Users,DC=devops,DC=local
User Attribute Name: sAMAccountName
Sync Options
Bind User: Your bind user
Bind Password: <PASSWORD>
E-Mail attribute: mail
User classes: person, user
Group classes: group
User Filter: (&(memberOf=CN=VMAdmins,CN=Users,DC=devops,DC=local))
Group Filter: (&(distinguishedName=CN=VMAdmins,CN=Users,DC=devops,DC=local))
Scope: Users and Groups
Full: Yes
Enable new users: Yes(Default)
Purge: Yes
保存设置后,点击Sync按钮,并选择Preview,此时能看到同步到了用户和组信息。可以直接同步信息了,此时Users和Grouos选项内可以看到条目了。
分配管理员权限
Datacenter -> Permissions -> Add -> Group Permission
最后...
附上从Windows Server 2012降级到2003的瞬时功耗对比图。T_T