是否可以在Windows基础结构中使用Linux桌面?

大家好!在Habré上,反复提出了有关如何准备Linux发行版以输入Active Directory以及与其他Windows服务器集成的问题。同时,还没有关于是否值得这样做以及最终结果是否值得花费时间和精力的文章。

为什么会出现这个问题?我被要求为那些厌倦了Windows 10的更新和繁琐(尤其是充满GPO策略)的人配置Linux。此外,Linux的无可争辩的优势之一(甚至是其热烈的反对者也认识到它)是免费的开放性。这也是一个重要的论点。

该计算机是普通公司的普通用户,可用于Word和Excel,浏览器,并且在极少数情况下,它可与某些远程应用程序一起使用,例如通过RDP。一个不寻常的用户,例如整个程序员,没有很大困难,可以要求管理员找到所需的IDE,Jenkins,git,以及那里的程序员还需要什么? Messenger在下一篇文章中缺乏Linux的抱怨,Linux千方百计。 Skype,Viber,ICQ,甚至是在俄罗斯联邦受阻的客户端,都可以在官方站点上完全获得支持,并且在UI中与为Windows设计的客户端完全兼容。

因此,您查看了系统用户的需求,将其与Linux的功能进行比较,您会发现明显的优势以及节省的成本是显而易见的。那么,为什么对将用户从Windows转移到Linux这样的好主意有异议呢?只是习惯?

我根本不是开放操作系统的好用户,但是我想分享一些(从Windows迁移用户到Linux时)获得的最小实践经验。

我真诚地希望有经验的用户HABRA 虚无缥缈的手告诉我我的行为可以改善的地方,也许又可以在哪里重做。

毕竟,很可能我看不到老一辈和更有经验的同志知道的任何陷阱,如果普通用户向我指出这样的问题,我将由衷的感谢。我衷心希望我提供的信息是可复制的。

准备本地存储库


Linux(至少是Ubuntu)(如Windows)完全支持网络/本地安装。由于也可以从Internet完美安装linux,因此可以省略此步骤。但是考虑到系统的安装,通常会重复执行该任务,因此我们将尝试使其自动化,并避免使用我们无法控制的外部存储库造成不必要的问题,我们将准备一个具有本地存储库的虚拟机,在该虚拟机上安装系统的安装文件,答案文件, (同时,我们需要的所有软件以及将来的更新)。

对于Ubuntu 20.04 Focal Fossa的LTS版本,安装文件和所有其他软件大约占用80 GB。

作为虚拟机的操作系统-我使用了Ubuntu Server 20.04这是一个稳定的版本,将在2025年之前得到完全支持。

安装完成后,为我们的计算机设置一个易于理解的名称

sudo nano /etc/hostname  
#      ,
#   

安装软件包以进行存储库克隆

sudo apt install apt-mirror 

sudo nano /etc/apt/mirror.list 
#   

/etc/apt/mirror.list


############# config ##################
set base_path    /repo  
set mirror_path  $base_path/mirror
set skel_path    $base_path/skel
set var_path     $base_path/var
set cleanscript $var_path/clean.sh
set postmirror_script $var_path/postmirror.sh
set run_postmirror 0
set limit_rate 2000000
set nthreads   20
set _tilde 0
############# end config ##############
#------------------------------------------------------------------------------#
#                            OFFICIAL UBUNTU REPOS                               #
#------------------------------------------------------------------------------#
###### Ubuntu Main Repos
# 18.04 mirroring
deb http://archive.ubuntu.com/ubuntu focal main main/debian-installer restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-updates main main/debian-installer restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu focal-security main main/debian-installer restricted universe multiverse

clean http://archive.ubuntu.com/ubuntu

#------------------------------------------------------------------------------#
#                           UNOFFICIAL UBUNTU REPOS                            #
#------------------------------------------------------------------------------#
###### 3rd Party Binary Repos
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main

我要注意的是,此配置显示了在克隆存储库时控制流数量和下载文件的速度的能力,并且还展示了克隆不属于Canonical的外部存储库的能力。例如,谷歌浏览器。

另外,值得注意的是,除了配置外,还必须注册main / debian-installer分支,尽管它是main分支的子级。对我来说,这并不明显,我发现这不是以前编写的,起初我不能了解发生了什么事。

sudo apt-mirror 
#   (,   >= 80 Gb) 

您需要每周运行sudo apt-mirror命令来更新我们的存储库-用于更新客户端计算机的“服务器”。

使用记录更新日志来设置存储库自动更新的示例

sudo nano /etc/crontab
30 02     * * 0   admin      /usr/bin/apt-mirror > /path/to/your.log
#   02:30
#        #https://crontab.guru/examples.html

安装Web服务器(用于将文件分发给我们的未来客户)


sudo apt install apache2  
ln –s /repo/mirror/archive.ubuntu.com/ /var/www/html/ubuntu 
#(       )
sudo systemctl restart apache2 
# ( -).

为了验证一切是否按计划进行,您必须尝试通过浏览器登录我们的IP。结果,我们应该看到存储库文件。

安装tftpd以通过网络安装ubuntu


sudo apt install tftpd-hpa  
sudo nano /etc/default/tftpd-hpa 


# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"   
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure -l -v -m /etc/tftpd.remap"


#   /etc/tftpd.remap    
rg \\/

sudo mkdir /tftpboot  
#(   )
sudo chmod -R 755 /tftpboot
cd /tftpboot


#  syslinux
wget https://www.kernel.org/pub/linux/utils/boot/syslinux/4.xx/syslinux-4.07.tar.gz 

以任何方便的方式所有找到的.c32文件从syslinux 解压缩并递归复制到/ tftpboot,并在/ tftpboot

/tftpboot/pxelinux.cfg中创建pxelinux.cfg文件夹和linux文件夹,将有一个引导加载程序菜单(名为default的文件)

默认

ui vesamenu.c32
ALLOWOPTIONS 0 
PROMPT 0
menu title Microsoft SCCM Enterprice Endpoint :-)
MENU WIDTH 77
MENU MARGIN 10
MENU PASSWORDMARGIN 3
MENU ROWS 12
MENU TABMSGROW 18
MENU CMDLINEROW 18
MENU ENDROW 24
MENU PASSWORDROW 11
MENU TIMEOUTROW 60
NOESCAPE 0
MENU COLOR SCREEN 44;30 #00FFFFFF #00000000
MENU COLOR BORDER 44;30 #FFFFFFFF #FF000000
MENU COLOR TITLE 1;44;30 #FFFFFFFF #FF000000
MENU COLOR SCROLLBAR 44;30
MENU COLOR HOTKEY 44;30 #FFFFFF00 #FF000000
MENU COLOR UNSEL 44;30 #FFFFFFFF #FF000000
MENU COLOR HOTSEL 1;30 #FFFFFFFF #FF333333
MENU COLOR SEL 7;44;30 #FFFFFF00 #FF333333
MENU COLOR CMDMARK 44;30
MENU COLOR CMDLINE 44;30
MENU COLOR TABMSG 44;30
MENU COLOR DISABLED 44;30
MENU COLOR HELP 44;30
MENU COLOR PWDBORDER 44;30 #FF187CCA #FFFFFFFF
MENU COLOR PWDHEADER 1;44;30 #FF187CCA #FFFFFFFF
MENU COLOR PWDENTRY 5;44;30 #FF187CCA #FFFFFFFF
TIMEOUT 120
LABEL HDD
MENU LABEL Boot from first HDD
KERNEL chain.c32
APPEND hd0 0
ENDTEXT
LABEL TEST
MENU LABEL Install Ubuntu 20.04
KERNEL linux/linux
IPAPPEND 1
APPEND initrd=linux/initrd.gz url=http://server.local/preseed/ubuntu2.cfg auto=true priority=critical debian-installer/locale=en_US keyboard-configuration/layoutcode=us languagechooser/language-name=en_US countrychooser/shortlist=US localechooser/supported-locales multiselect en_US splash noprompt noshell ---
ENDTEXT


以下文件应位于/ tftpboot / linux中:

ubuntu2.cfg响应文件,initrd.gz加载程序,linux内核文件

以下是预设文件(响应文件)的示例。

可以无休止地对其进行补充,但是使用建议的设置,而无需一次击键,就可以完全自动安装系统。(确实,我必须承认用户名和密码是答案文件中指定的,因此系统将安装有密码保护的系统

ubuntu2.cfg

https://github.com/drumit/ubuntu_config/blob/master/ubuntu2.cfg

内核和引导程序是在以下地址获得的:

archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/20101020ubuntu614/legacy-images/netboot/ubuntu-installer/amd64

答案文件使您可以自动选择系统语言,安装语言系统,设置所需的磁盘分区和格式,甚至将密码哈希设置给引导加载程序和本地管理员(在安装时-唯一的PC用户)。

使用预先配置的DHCP(选项66和67),包括下载并选择“ Install Ubuntu 20.04”行后的tftp服务器的启动文件和IP地址,其他所有操作都将在我们的干预下完成。 (系统将安装大约25-30分钟)。

输入登录名和密码后,在大多数情况下,系统将完全准备就绪,可以轻松处理文档,图片,音频和视频文件以及Internet。

安装大约需要25-30分钟。并完全自动运行。这对于普通用户而言已经足够。

但是,我们谈论的是Ubuntu在企业环境中的工作,这意味着我们将谈论与Active Directory,Exchange,DFS等的集成。也许在与这些服务进行交互的方式中会出现问题?也许上述某些步骤在此阶段已经做错了?在本文的下一部分中,我将介绍如何将Linux系统集成到公司Windows基础结构中的方法。

要管理和配置远程计算机,必须在带有存储库的“服务器”上安装Ansible配置管理系统。

安装和配置Ansible(用于Ubuntu的自动设置和管理)


sudo apt install ansible
sudo nano /etc/ansible/hosts 
#  ,       ,   hostname.   IP
# ,     ,   ,    hostname  IP .

填写清单文件后,我们必须将客户端计算机连接到服务器。
ssh-keyhen(在服务器上创建私钥/公钥对)

d /home/localadm/.ssh/
ssh-copy-id localadm@192.168.*.*
#        (,   #    

要验证设置是否成功,请输入命令。

ansible  all –m ping   

如果我们看到客户端PC的响应,则说明我们的设置正确。

成功检查设置后,您需要运行脚本以重新安装必要的软件包,并将PC输入域。

通常在Ansible中创建角色来控制计算机的行为,但是由于我们要完成的任务很简单,只需将Ubuntu计算机安装,卸载,配置并将其输入到域中,我们将使用一个简单的脚本(用Ansible剧本的术语)。

在开始编写剧本之前,对登录名和密码进行加密非常重要,我们将使用该登录名和密码将计算机输入域,理想情况下,这应该是服务帐户,并且应使用集成加密。

ansible-vault encrypt playbook3.yaml
#(   ).

在将脚本转换为工作形式后运行脚本:

1. ansible-playbook playbook3.yaml –ask-vault-pass
2.      
3.    

运行脚本时,计算机必须重新启动几次。从服务器手动重新启动脚本后,重新启动客户端后,脚本将从停止的那一刻起继续执行(索引前面的步骤后)。脚本操作(以及重新启动)将花费不超过10分钟。

这是脚本:

playbook3.yaml

https://github.com/drumit/ubuntu_config/blob/master/playbook3.yaml


Ansible脚本是指配置kerberos,sssd,samba和其他一些重要文件的其他几个脚本

krb5.conf.j2

https://github.com/drumit/ubuntu_config/commits/master/krb5.conf

sssd.conf.j2

https://github.com/drumit/ubuntu_config/blob/master/sssd.conf.j2


samba.conf.j2

https://github.com/drumit/ubuntu_config/blob/master/samba.conf.j2


nsswitch.conf.j2
  
https://github.com/drumit/ubuntu_config/blob/master/nsswitch.conf.j2


common-auth.j2

https://github.com/drumit/ubuntu_config/blob/master/common-auth.j2

普通帐户

https://github.com/drumit/ubuntu_config/blob/master/common-account.j2

通用密码

https://github.com/drumit/ubuntu_config/blob/master/common-password.j2

common-session.j2

https://github.com/drumit/ubuntu_config/blob/master/common-session.j2

普通会话非交互

https://github.com/drumit/ubuntu_config/blob/master/common-session-noninteractive.j2


PS我错过了上面写这篇精彩的Evolution产品的机会,该产品与Evolution-ews插件一起通过EWS协议与Excgange服务器成功进行了交互,不仅“发送”了邮件,而且还与日历进行了完美的交互。

另外,我注意到上面提到的所有设置都完成了1次。然后,完全安装和配置系统所需的时间不超过1个小时。

那么,为什么Linux不好并且适合普通用户呢?对于企业环境中的用户呢?

All Articles