Apakah mungkin menggunakan Linux Desktop dalam infrastruktur Windows?

Halo semuanya! On Habré berulang kali mengajukan pertanyaan tentang bagaimana menyiapkan distribusi Linux untuk input ke Active Directory, serta untuk integrasi dengan beberapa server Windows lainnya. Pada saat yang sama, belum ada artikel yang ditulis tentang apakah perlu melakukan ini sama sekali, dan apakah hasil akhirnya akan sepadan dengan waktu dan upaya yang dihabiskan.

Mengapa pertanyaan ini muncul? Saya diminta untuk mengkonfigurasi Linux untuk orang-orang yang bosan dengan pembaruan dan kerakusan Windows 10 (terutama penuh dengan kebijakan GPO). Selain itu, salah satu keunggulan Linux yang tak terbantahkan (dan bahkan para penentangnya yang bersemangat mengenalinya) adalah keterbukaannya secara gratis. Ini juga argumen yang signifikan.

Pengguna biasa di perusahaan biasa, komputer menggunakan untuk Word dan Excel, browser, ditambah dalam kasus yang jarang terjadi, ia bekerja dengan beberapa aplikasi jarak jauh, misalnya, melalui RDP. Pengguna yang tidak biasa, seperti seluruh programmer, tanpa kesulitan yang signifikan dapat meminta admin untuk menemukan IDE yang diperlukan, Jenkins, git, dan apa lagi yang dibutuhkan oleh programmer di sana? Utusan, kekurangan yang di Linux dalam artikel berikutnya mengeluh, Linux ada dalam setiap kelimpahan yang mungkin. Skype, Viber, ICQ, bahkan klien yang diblokir di Federasi Rusia, sepenuhnya tersedia di situs resmi, didukung sepenuhnya dan sepenuhnya identik di UI dengan klien yang dirancang untuk Windows.

Jadi, Anda melihat persyaratan pengguna untuk sistem, membandingkannya dengan kemampuan Linux dan Anda berpikir, keunggulan yang solid, serta penghematan yang terlihat jelas. Lalu, mengapa ada keberatan terhadap ide indah seperti mentransfer pengguna dari Windows ke Linux? Kebiasaan buruk saja ?

Saya bukan pengguna keren sistem operasi terbuka, tapi saya ingin berbagi pengalaman praktis minimal yang saya dapatkan (saat mentransfer pengguna dari Windows ke Linux).

Saya dengan tulus berharap agar pengguna Habra nada tangan yang berpengalaman itu beri tahu saya di mana tindakan saya dapat ditingkatkan, dan di mana, mungkin ulang lagi.

Bagaimanapun, mungkin saya tidak melihat jebakan yang diketahui oleh kawan-kawan yang lebih tua dan lebih berpengalaman, saya akan dengan tulus berterima kasih jika pengguna biasa menunjukkan masalah seperti itu kepada saya. Saya sangat berharap bahwa informasi yang saya berikan dapat direproduksi.

Mempersiapkan repositori lokal


Linux (setidaknya Ubuntu), seperti Windows, sepenuhnya mendukung instalasi jaringan / lokal. Mungkin untuk menghilangkan langkah ini, karena linux juga diinstal dengan sempurna dari Internet. Tetapi mengingat bahwa pemasangan sistem, tugas tersebut sering diulang, kami akan mencoba mengotomatiskannya, dan untuk menghindari masalah yang tidak perlu dengan repositori eksternal yang tidak kami kontrol, kami akan menyiapkan mesin virtual dengan repositori lokal tempat file instalasi sistem, file jawaban, (dan pada saat yang sama, semua perangkat lunak yang kami butuhkan, serta pembaruan di masa mendatang).

File instalasi dan semua perangkat lunak tambahan, untuk versi LTS Ubuntu 20,04 Focal Fossa, menempati sekitar 80 GB.

Sebagai OS untuk mesin virtual - Saya menggunakan Ubuntu Server 20.04Ini adalah rilis stabil yang akan didukung sepenuhnya hingga 2025.

Setelah instalasi selesai, tetapkan nama yang ramah manusia untuk komputer kita

sudo nano /etc/hostname  
#      ,
#   

Instal paket untuk kloning repositori

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

Saya ingin mencatat bahwa konfigurasi ini menunjukkan kemampuan untuk mengontrol jumlah aliran dan kecepatan mengunduh file ketika kloning repositori, dan juga menunjukkan kemampuan untuk mengkloning repositori eksternal yang bukan milik Canonical. Misalnya, Google Chrome.

Juga, perlu dicatat bahwa, selain konfigurasi, perlu untuk mendaftarkan cabang utama / debian-installer, meskipun itu adalah anak dari cabang utama. Tidak jelas bagi saya, saya tidak menemukan bahwa ini ditulis sebelumnya, dan pada awalnya saya tidak bisa mengerti apa yang terjadi.

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

Anda perlu menjalankan perintah sudo apt-mirror, misalnya, setiap minggu, untuk memperbarui repositori kami - "server" untuk memperbarui komputer klien.

Contoh pengaturan pembaruan otomatis repositori dengan catatan log pembaruan

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

Menginstal server web (untuk mendistribusikan file ke pelanggan kami di masa mendatang)


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

Untuk memverifikasi bahwa semuanya berjalan sesuai rencana, Anda harus mencoba masuk ke ip kami melalui browser. Sebagai hasilnya, kita harus melihat file-file repositori.

Instal tftpd untuk menginstal ubuntu melalui jaringan


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 

Unzip dan salin semua file perpustakaan .c32 yang ditemukan dari syslinux ke / tftpboot dengan cara apa pun yang nyaman bagi Anda, dan juga buat folder pxelinux.cfg dan folder linux di / tftpboot

/tftpboot/pxelinux.cfg akan ada menu bootloader (file bernama default)

standar

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


File-file berikut harus berada di / tftpboot / linux:

file respons ubuntu2.cfg, initrd.gz loader, file kernel linux

Di bawah ini adalah contoh file preseed (file respon).

Ini dapat ditambahkan tanpa batas, tetapi dengan pengaturan yang diusulkan, tanpa keystroke tunggal, sistem terinstal sepenuhnya secara otomatis. (Benar, saya harus mengakui bahwa pengguna dan kata sandinya dimaksudkan dalam file jawaban, sehingga sistem akan dipasang dengan kata sandi yang dilindungi

ubuntu2.cfg

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

Kernel dan bootloader diperoleh di alamat ini:

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

File jawaban memungkinkan Anda untuk secara otomatis memilih bahasa sistem, bahasa instalasi sistem, mengatur partisi yang diperlukan dan memformat disk, dan bahkan mengatur hash kata sandi ke bootloader dan administrator lokal (pada saat instalasi - satu-satunya pengguna PC).

Dengan DHCP yang telah dikonfigurasi sebelumnya (opsi 66 dan 67) yang menyertakan file boot dan alamat IP dari server tftp setelah mengunduh dan memilih jalur "Instal Ubuntu 20.04", semuanya akan dilakukan tanpa campur tangan kami. (Sistem akan menginstal sekitar 25-30 menit).

Setelah memasukkan login dan kata sandi, dalam sebagian besar kasus sistem akan sepenuhnya siap untuk bekerja dengan dokumen, gambar, file audio dan video, Internet, tanpa kesulitan.

Instalasi membutuhkan waktu sekitar 25-30 menit. dan berjalan sepenuhnya secara otomatis. Ini cukup untuk pengguna biasa.

Tetapi kita berbicara tentang pekerjaan Ubuntu di lingkungan perusahaan, yang berarti kita akan berbicara tentang integrasi dengan Active Directory, Exchange, DFS, dll. Mungkin di suatu tempat di jalan menemukan interaksi dengan layanan ini akan ada masalah? Mungkin sesuatu di atas sudah melakukan kesalahan pada tahap ini? Pada bagian selanjutnya dari artikel ini saya akan menulis tentang cara saya mengintegrasikan sistem Linux ke dalam infrastruktur Windows korporat.

Untuk mengelola dan mengkonfigurasi komputer jarak jauh, perlu untuk menginstal sistem manajemen konfigurasi Ansible pada "server" dengan repositori

Instal dan konfigurasikan Ansible (untuk pengaturan otomatis dan administrasi Ubuntu)


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

Setelah mengisi file inventaris, kita harus menghubungkan mesin klien ke server.
ssh-keyhen (buat pasangan kunci pribadi / publik di server)

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

Untuk memverifikasi keberhasilan pengaturan, masukkan perintah.

ansible  all –m ping   

Jika kami melihat respons dari PC klien, pengaturan kami sudah benar.

Setelah berhasil memeriksa pengaturan, Anda perlu menjalankan skrip untuk menginstal ulang paket yang diperlukan dan memasukkan PC ke domain.

Peran biasanya dibuat di Ansible untuk mengontrol perilaku komputer, tetapi karena kami memiliki tugas sepele untuk menginstal, mencopot, mengonfigurasi, dan memasukkan komputer Ubuntu ke dalam domain, kami akan menggunakan skrip sederhana (dalam terminologi buku pedoman Ansible).

Sebelum memulai buku pedoman, sangat penting untuk mengenkripsi login dan kata sandi di mana kita akan memasukkan komputer ke domain, idealnya ini adalah akun layanan, dan harus dienkripsi dengan ensemble.

ansible-vault encrypt playbook3.yaml
#(   ).

Untuk menjalankan skrip setelah membawa skrip ke bentuk kerja:

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

Saat Anda menjalankan skrip, komputer harus dihidupkan ulang beberapa kali. Setelah memulai ulang skrip secara manual dari server, setelah me-reboot klien, skrip akan melanjutkan eksekusi dari saat skrip dihentikan (setelah mengindeks langkah-langkah sebelumnya). Tindakan skrip (bersama dengan reboot) akan memakan waktu tidak lebih dari 10 menit.

Ini skripnya:

playbook3.yaml

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


Script yang memungkinkan mengacu pada beberapa skrip tambahan yang mengkonfigurasi kerberos, sssd, samba dan beberapa file penting lainnya

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

common-account.j2

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

common-password.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

common-session-noninteractive.j2

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


PS Saya melewatkan kesempatan untuk menulis di atas tentang produk Evolution yang luar biasa yang, bersama dengan plug-in Evolution-ews, berhasil berinteraksi melalui protokol EWS dengan server Excgange, "memberi" tidak hanya surat, tetapi juga berinteraksi dengan kalender dengan sempurna.

Secara terpisah, saya perhatikan bahwa semua pengaturan yang disebutkan di atas dilakukan 1 kali. Kemudian menginstal dan mengkonfigurasi sistem sepenuhnya membutuhkan waktu tidak lebih dari 1 jam.

Jadi mengapa Linux buruk dan apakah itu cocok untuk pengguna biasa? Dan untuk pengguna di lingkungan perusahaan?

All Articles