LTSP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Kubernetes рдХреЗ рд▓рд┐рдП рдПрдХ рдиреЗрдЯрд╡рд░реНрдХ-рддреИрдпрд╛рд░ рд╕рд░реНрд╡рд░ рдлрд╝рд╛рд░реНрдо рдмрдирд╛рдПрдВ


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд╢рд╛рдВрдд рддрдХрдиреАрдХ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореИрдВ рдЗрд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдмрдбрд╝реЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред


рдЕрдм рд╕реЗ, рдЖрдкрдХреЛ рдУрдПрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВ? рдЖрдк рдпрд╣ рд╕рдм рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!


рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕реИрдХрдбрд╝реЛрдВ рдирдП рд╕рд░реНрд╡рд░ рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ!


Intrigued? рдЕрдм рдХреНрд░рдо рдореЗрдВ рд╕рдм рдХреБрдЫ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред


рд╕рд╛рд░рд╛рдВрд╢


рдЖрд░рдВрдн рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рд░реНрдХрд┐рдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред


рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рд╕рднреА рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рд╣рдо рдУрдПрд╕, рдбреЙрдХрд░, рдХреНрдпреВрдмрд▓реЗрдЯ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЪреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХрд▓ рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред
рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдЗрдореЗрдЬ рд╕реНрд╡рддрдГ рд╣реА рдбреЙрдХрдлреЗрд░рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ CI рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдПрдВрдб рдиреЛрдбреНрд╕ рдиреЗрдЯрд╡рд░реНрдХ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ рдЗрд╕ рдЫрд╡рд┐ рд╕реЗ рдУрдПрд╕ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВред


рдиреЛрдбреНрд╕ рдУрд╡рд░рд▓реЗрдлреНрд╕ рдХреЛ рд░реВрдЯ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд░рд┐рдмреВрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХреЛрдИ рднреА рдмрджрд▓рд╛рд╡ рдЦреЛ рдЬрд╛рдПрдЧрд╛ (рд╕рд╛рде рд╣реА рдбреЙрдХ рдХрдВрдЯреЗрдирд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ)ред
рдПрдХ рдореБрдЦреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ, рдЗрд╕рдореЗрдВ рдЖрдк рдЖрд░реЛрд╣ рдмрд┐рдВрджреБрдУрдВ рдФрд░ рдХреБрдЫ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдиреЛрдб рд▓реЛрдб рд╣реЛрдиреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ ssh рдХреБрдВрдЬреА рдФрд░ kubeadm join рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдорд╛рдВрдб)


рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛


рд╣рдо LTSP рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдмреВрдЯ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рдм рдХреБрдЫ рджреЗрддрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, LTSP рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдмрдВрдбрд▓ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред


рдпрд╣ рдЗрдирдЯреНрд░рд╛рдорд╛рдлрд╝реНрд╕ рдореЙрдбреНрдпреВрд▓, рдХрдИ рд╣реЗрд▓реНрдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рдгрд╛рд▓реА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЗрдирд┐рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА рд▓реЛрдбрд┐рдВрдЧ рдХреЗ рд╢реБрд░реБрдЖрддреА рдЪрд░рдг рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИред


рдЗрд╕ рддрд░рд╣ рд╕реЗ рдЫрд╡рд┐ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджрд┐рдЦрддреА рд╣реИ:


  • рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рдЪреЗрд░реЛрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рддреИрдирд╛рдд рдХрд░реЗрдВред
  • рд╣рдо рдЖрд╡рд╢реНрдпрдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рддреЗ рд╣реИрдВ, рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
  • ltsp-build-image рдХрдорд╛рдВрдб рдЪрд▓рд╛рдПрдБ

рдЗрд╕рдХреЗ рдареАрдХ рдмрд╛рдж рдЖрдкрдХреЛ рдЗрд╕ рдЪреБрд░реЛрдЯ рд╕реЗ рдПрдХ рд╕рдВрдкреАрдбрд╝рд┐рдд рдЫрд╡рд┐ рдорд┐рд▓ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЕрдВрджрд░ рд╕реНрдерд╛рдкрд┐рдд рд╣реИрдВред
рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдмреВрдЯ рд╕рдордп рдкрд░ рдЗрд╕ рдЫрд╡рд┐ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрд╕реЗ рд░реВрдЯрдлрд╝реНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕ рдиреЛрдб рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВ, рдирдИ рдЫрд╡рд┐ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛рдПрдЧреА рдФрд░ рд░реВрдЯрдлрд╝ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдПрдЧреАред


рд╕рд░реНрд╡рд░ рдШрдЯрдХ


рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ LTSP рдХреЗ рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдореЗрдВ рдХреЗрд╡рд▓ рджреЛ рдШрдЯрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  • TFTP рд╕рд░реНрд╡рд░ - TFTP рдПрдХ рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд╣реИ, рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реНрдиреЗрд▓, рдЗрдирдЯреНрд░рд╛рдореНрд░рд╛рдореНрд╕ рдФрд░ рдореБрдЦреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - lts.confред
  • NBD рд╕рд░реНрд╡рд░ - NBD рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЛ рдПрдХ рдХрдВрдкреНрд░реЗрд╕реНрдб рд░реВрдЯрдлреИрд╕ рдЗрдореЗрдЬ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рд╕рдмрд╕реЗ рддреЗрдЬрд╝ рд╡рд┐рдзрд┐ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рдЗрд╕реЗ NFS рдпрд╛ AoE рд╕реЗ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЖрдкрдХреЛ рдпрд╣ рднреА рдХрд░рдирд╛ рд╣реЛрдЧрд╛:


  • рдбреАрдПрдЪрд╕реАрдкреА рд╕рд░реНрд╡рд░ - рдпрд╣ рдЖрдИрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рддрд╛рдХрд┐ рд╡реЗ рд╣рдорд╛рд░реЗ LTSP рд╕рд░реНрд╡рд░ рд╕реЗ рдмреВрдЯ рдХрд░ рд╕рдХреЗрдВред

рдиреЛрдб рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛


рдиреЛрдб рд▓реЛрдбрд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд┐рд╡рд░рдг


  • рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдиреЛрдб рдбреАрдПрдЪрд╕реАрдкреА рдЖрдИрдкреА рдкрддреЗ рдФрд░ next-server , filename рд▓рд┐рдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдЧрд╛ред
  • рдлрд┐рд░ рдиреЛрдб рд╕реЗрдЯрд┐рдВрдЧ рд▓рд╛рдЧреВ рдХрд░реЗрдЧрд╛ рдФрд░ рдмреВрдЯрд▓реЛрдбрд░ (pxelinux рдпрд╛ рдЧреНрд░рдм) рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдЧрд╛
  • рдмреВрдЯрд▓реЛрдбрд░ рдХрд░реНрдиреЗрд▓ рдФрд░ рдЗрдирдЯреНрд░рд╛рдореНрд░рд╛рдореНрд╕ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдФрд░ рд▓реЛрдб рдХрд░реЗрдЧрд╛ред
  • рдлрд┐рд░ рдпрд╣ рдХрд░реНрдиреЗрд▓ рдФрд░ рдЗрдирдЯреНрд░рд╛рдореНрд░рд╛рдореНрд╕ рдХреЛ рдХрд░реНрдиреЗрд▓ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░реЗрдЧрд╛ред
  • рдмреВрдЯ рд╕рдордп рдкрд░, initramfs рдореЙрдбреНрдпреВрд▓ cmdline рд╕реЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ рдХреБрдЫ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд░реЗрдЧрд╛, рдЬреИрд╕реЗ рдХрд┐ рдПрдХ nbd рдбрд┐рд╡рд╛рдЗрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛, рдУрд╡рд░рд▓реЗ рд░реВрдЯрдлрд╝реНрд╕ рддреИрдпрд╛рд░ рдХрд░рдирд╛, рдЖрджрд┐ред
  • рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рд╛рдорд╛рдиреНрдп init рдХреЗ рдмрдЬрд╛рдп, рдПрдХ рд╡рд┐рд╢реЗрд╖ ltsp-init рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛ред
  • Ltsp-init рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореБрдЦреНрдп рдЗрдирд┐рдЯ рдХрд╣реЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рддреИрдпрд╛рд░ рдХрд░ рджреЗрдЧрд╛ред рдореВрд▓ рд░реВрдк рд╕реЗ, lts.conf (рдореБрдЦреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓) рдХреЗ рд╡рд┐рдХрд▓реНрдк рдпрд╣рд╛рдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ: рдпрд╣ fstab рдФрд░ rllocal, рдЖрджрд┐ рдореЗрдВ рд░рд┐рдХреЙрд░реНрдб рдЕрдкрдбреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред
  • рдлрд┐рд░ рдореБрдЦреНрдп рдЗрдирд┐рдЯ (рд╕рд┐рд╕реНрдЯрдордб) рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрд▓ рд╣реЛрдЧрд╛, рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд▓реЛрдб рдХрд░реЗрдЧрд╛, fstab рд╕реЗ рд╕рд╛рдЭрд╛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░реЗрдЧрд╛, рд▓рдХреНрд╖реНрдп рдФрд░ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░реЗрдЧрд╛, рдФрд░ rc.local рд╕реЗ рдХрдорд╛рдВрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛ред
  • рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдФрд░ рд▓реЛрдб рдХреА рдЧрдИ рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓рддреА рд╣реИ, рдЬреЛ рдЖрдЧреЗ рдХреА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред

рд╕рд░реНрд╡рд░ рдХреА рддреИрдпрд╛рд░реА


рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдХрд╣рд╛, рдореИрдВ рдбреЙрдХрдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд╡реИрд╢ рдЗрдореЗрдЬ рдХреЗ рд╕рд╛рде LTSP рд╕рд░реНрд╡рд░ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рд╡рд┐рдзрд┐ рдЦрд░рд╛рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рдЖрдкрдХреЗ рдЧрд┐рдЯ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, CI рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╡рд╣реА рд╕рдм рдЬреЛ рдЖрдк рд╕рд╛рдорд╛рдиреНрдп рдбреЙрдХрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддреИрдпрд╛рд░реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред


рджреВрд╕рд░реА рдУрд░, рдЖрдк рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рднреА рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдПрд▓рдЯреАрдПрд╕рдкреА рд╕рд░реНрд╡рд░ рдХреЛ рддреИрдирд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдкреНрд░рд╢рд┐рдХреНрд╖рдг рдХреЗ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдФрд░ рдмреБрдирд┐рдпрд╛рджреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд▓реЗрдЦ рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдХрдорд╛рдВрдб рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдПрдВ рдпрджрд┐ рдЖрдк рдХреЗрд╡рд▓ рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ LTSP рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред


рдкреНрд░рдпреБрдХреНрдд рдкреИрдЪ рдХреА рд╕реВрдЪреА


рдлрд┐рд▓рд╣рд╛рд▓, LTSP рдореЗрдВ рдХреБрдЫ рдЦрд╛рдорд┐рдпрд╛рдВ рд╣реИрдВ, рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓реЗрдЦрдХ рд╕реБрдзрд╛рд░реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЗрдЪреНрдЫреБрдХ рдирд╣реАрдВ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, LTSP рдЖрд╕рд╛рдиреА рд╕реЗ рдЕрдиреБрдХреВрд▓рди рдпреЛрдЧреНрдп рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд▓рд┐рдП рдХреБрдЫ рдкреИрдЪ рддреИрдпрд╛рд░ рдХрд┐рдП, рдореИрдВ рдЙрдиреНрд╣реЗрдВ рдпрд╣рд╛рдВ рджреВрдВрдЧрд╛ред
рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рджрд┐рди рдореИрдВ рдХрд╛рдВрдЯреЗ рдореЗрдВ рдкрд░рд┐рдкрдХреНрд╡ рд╣реЛ рдЬрд╛рдКрдВ рдпрджрд┐ рд╕рдореБрджрд╛рдп рдореЗрд░реЗ рдирд┐рд░реНрдгрдп рдХреЛ рдЧрд░реНрдордЬреЛрд╢реА рд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗред


  • рд╕реБрд╡рд┐рдзрд╛ grub.diff
    рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдПрд▓рдЯреАрдПрд╕рдкреА рдИрдПрдлрдЖрдИ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рдкреИрдЪ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬреЛ GRFI2 рдХреЛ EFI рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИред
  • feature_preinit.diff
    рдпрд╣ рдкреИрдЪ LRE.conf рдореЗрдВ PREINIT рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдореБрдЦреНрдп рдЗрдирд┐рдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдордирдорд╛рдиреА рдХрдорд╛рдВрдб рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд╕реНрдЯрдордб рдЗрдХрд╛рдЗрдпреЛрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рдмреВрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рд╕реЗ рд╕рднреА рдЪрд░ рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмреБрд▓рд╛рдП рдЧрдП рдЕрдкрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  • feature_initramfs_params_from_lts_conf.diff
    рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдЕрдХреНрд╖рдо NBD_TO_RAM рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕ рдкреИрдЪ рдХреЗ рдмрд╛рдж рдЖрдк рдЗрд╕реЗ lro.conf рдореЗрдВ рдереНрд░реЛрдЯ рдХреЗ рдЕрдВрджрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред (tftp рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдирд╣реАрдВ)
  • nbd-server-wrapper.sh
    рдпрд╣ рдПрдХ рдкреИрдЪ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рд╢реЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рдпрд╣ рдЖрдкрдХреЛ nbd-server рдХреЛ рдЕрдЧреНрд░рднреВрдорд┐ рдореЗрдВ рдЪрд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЕрдЧрд░ рдЖрдкрдХреЛ Docker рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ nbd-server рдЪрд▓рд╛рдирд╛ рд╣реИ рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

Dockerfile рдЪрд░рдгреЛрдВ


рд╣рдо рдЕрдкрдиреЗ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рдХреЗ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдореЗрдВ рдордВрдЪ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рд╢реЗрд╖ рдЕрдкреНрд░рдпреБрдХреНрдд рднрд╛рдЧреЛрдВ рдХреЛ рдЕрдВрддрд┐рдо рдЫрд╡рд┐ рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛ред


 ltsp-base (    ltsp ) | |---basesystem | ( chroot-     ) | | | |---builder | | (    ,  ) | | | '---ltsp-image | (  , docker, kubelet   squashed ) | '---final-stage ( squashed ,   initramfs   stage) 

рд╕реНрдЯреЗрдЬ 1: ltsp- рдмреЗрд╕


рдареАрдХ рд╣реИ, рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╣рдорд╛рд░реЗ рдбреЙрдХрд░реАрдлрд╛рдЗрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рднрд╛рдЧ рд╣реИ:


 FROM ubuntu:16.04 as ltsp-base ADD nbd-server-wrapper.sh /bin/ ADD /patches/feature-grub.diff /patches/feature-grub.diff RUN apt-get -y update \ && apt-get -y install \ ltsp-server \ tftpd-hpa \ nbd-server \ grub-common \ grub-pc-bin \ grub-efi-amd64-bin \ curl \ patch \ && sed -i 's|in_target mount|in_target_nofail mount|' \ /usr/share/debootstrap/functions \ #   EFI   Grub (#1745251) && patch -p2 -d /usr/sbin < /patches/feature-grub.diff \ && rm -rf /var/lib/apt/lists \ && apt-get clean 

рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдорд╛рд░реА рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рдореНрди рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:


  • NBD рд╕рд░реНрд╡рд░
  • TFTP рд╕рд░реНрд╡рд░
  • рдЧреНрд░рдм рдмреВрдЯрд▓реЛрдбрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде LTSP рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ (EFI рдХреЗ рд▓рд┐рдП)

рд╕реНрдЯреЗрдЬ 2: рдмреЗрд╕рд╕рд┐рд╕реНрдЯрдо


рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЪреЗрд░реЛрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдЗрдореЗрдЬ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ltsp-build-client рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдорд╛рдиреНрдп debootstrap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ ltsp-build-client GUI рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреАрдЬреЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред


 FROM ltsp-base as basesystem ARG DEBIAN_FRONTEND=noninteractive #    RUN mkdir -p /opt/ltsp/amd64/proc/self/fd \ && touch /opt/ltsp/amd64/proc/self/fd/3 \ && debootstrap --arch amd64 xenial /opt/ltsp/amd64 \ && rm -rf /opt/ltsp/amd64/proc/* #   RUN echo "\ deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse\n\ deb http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse\n\ deb http://archive.ubuntu.com/ubuntu xenial-security main restricted universe multiverse" \ > /opt/ltsp/amd64/etc/apt/sources.list \ && ltsp-chroot apt-get -y update \ && ltsp-chroot apt-get -y upgrade #   LTSP RUN ltsp-chroot apt-get -y install ltsp-client-core #   initramfs # 1:    /etc/lts.conf    (#1680490) # 2:   PREINIT   lts.conf ADD /patches /patches RUN patch -p4 -d /opt/ltsp/amd64/usr/share < /patches/feature_initramfs_params_from_lts_conf.diff \ && patch -p3 -d /opt/ltsp/amd64/usr/share < /patches/feature_preinit.diff #  LTSP_NBD_TO_RAM    ,     ram: RUN echo "[Default]\nLTSP_NBD_TO_RAM = true" \ > /opt/ltsp/amd64/etc/lts.conf #   RUN echo 'APT::Install-Recommends "0";\nAPT::Install-Suggests "0";' \ >> /opt/ltsp/amd64/etc/apt/apt.conf.d/01norecommend \ && ltsp-chroot apt-get -y install \ software-properties-common \ apt-transport-https \ ca-certificates \ ssh \ bridge-utils \ pv \ jq \ vlan \ bash-completion \ screen \ vim \ mc \ lm-sensors \ htop \ jnettop \ rsync \ curl \ wget \ tcpdump \ arping \ apparmor-utils \ nfs-common \ telnet \ sysstat \ ipvsadm \ ipset \ make #   RUN ltsp-chroot apt-get -y install linux-generic-hwe-16.04 

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рд╕рдВрдХреБрд▓, рдЬреИрд╕реЗ рдХрд┐ lvm2, рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рдПрдХ unprivileged рдЪреБрд░реЛрдЯ рдореЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЙрдирдХреА рдкреЛрд╕реНрдЯ-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЖрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реЗ рдкреИрдХреЗрдЬ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рд╕рдорд╛рдзрд╛рди:


  • рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдХрд░реНрдиреЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, lvm2)
  • рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд┐рдирд╛ рдкреЛрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рд╕реНрдЯреЗрдЬ 3: рдмрд┐рд▓реНрдбрд░


рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдФрд░ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЗрд╕ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд▓рд╛рдХрд╛рд░реЛрдВ рд╕реЗ рдХреБрдЫ рднреА рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


рдореИрдВ MLNX_EN рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:


 FROM basesystem as builder #  cpuinfo (   ) RUN cp /proc/cpuinfo /opt/ltsp/amd64/proc/cpuinfo #    Mellanox driver RUN ltsp-chroot sh -cx \ ' VERSION=4.3-1.0.1.0-ubuntu16.04-x86_64 \ && curl -L http://www.mellanox.com/downloads/ofed/MLNX_EN-${VERSION%%-ubuntu*}/mlnx-en-${VERSION}.tgz \ | tar xzf - \ && export \ DRIVER_DIR="$(ls -1 | grep "MLNX_OFED_LINUX-\|mlnx-en-")" \ KERNEL="$(ls -1t /lib/modules/ | head -n1)" \ && cd "$DRIVER_DIR" \ && ./*install --kernel "$KERNEL" --without-dkms --add-kernel-support \ && cd - \ && rm -rf "$DRIVER_DIR" /tmp/mlnx-en* /tmp/ofed*' #    RUN ltsp-chroot sh -c \ ' export KERNEL="$(ls -1t /usr/src/ | grep -m1 "^linux-headers" | sed "s/^linux-headers-//g")" \ && tar cpzf /modules.tar.gz /lib/modules/${KERNEL}/updates' 

рдЪрд░рдг 4: ltsp- рдЫрд╡рд┐


рдЗрд╕ рдЪрд░рдг рдореЗрдВ рд╣рдо рд╡рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рд╣реИ:


 FROM basesystem as ltsp-image #    COPY --from=builder /opt/ltsp/amd64/modules.tar.gz /opt/ltsp/amd64/modules.tar.gz #    RUN ltsp-chroot sh -c \ ' export KERNEL="$(ls -1t /usr/src/ | grep -m1 "^linux-headers" | sed "s/^linux-headers-//g")" \ && tar xpzf /modules.tar.gz \ && depmod -a "${KERNEL}" \ && rm -f /modules.tar.gz' 

рдЕрдм рд╣рдо рдЕрдкрдиреА LTSP рдЫрд╡рд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ:


 #  docker RUN ltsp-chroot sh -c \ ' curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add - \ && echo "deb https://download.docker.com/linux/ubuntu xenial stable" \ > /etc/apt/sources.list.d/docker.list \ && apt-get -y update \ && apt-get -y install \ docker-ce=$(apt-cache madison docker-ce | grep 18.06 | head -1 | awk "{print $ 3}")' #    docker RUN DOCKER_OPTS="$(echo \ --storage-driver=overlay2 \ --iptables=false \ --ip-masq=false \ --log-driver=json-file \ --log-opt=max-size=10m \ --log-opt=max-file=5 \ )" \ && sed "/^ExecStart=/ s|$| $DOCKER_OPTS|g" \ /opt/ltsp/amd64/lib/systemd/system/docker.service \ > /opt/ltsp/amd64/etc/systemd/system/docker.service #  kubeadm, kubelet  kubectl RUN ltsp-chroot sh -c \ ' curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - \ && echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" \ > /etc/apt/sources.list.d/kubernetes.list \ && apt-get -y update \ && apt-get -y install kubelet kubeadm kubectl cri-tools' #    RUN rm -f /opt/ltsp/amd64/etc/apt/apt.conf.d/20auto-upgrades #   apparmor RUN ltsp-chroot find /etc/apparmor.d \ -maxdepth 1 \ -type f \ -name "sbin.*" \ -o -name "usr.*" \ -exec ln -sf "{}" /etc/apparmor.d/disable/ \; #    (cmdline) RUN KERNEL_OPTIONS="$(echo \ init=/sbin/init-ltsp \ forcepae \ console=tty1 \ console=ttyS0,9600n8 \ nvme_core.default_ps_max_latency_us=0 \ )" \ && sed -i "/^CMDLINE_LINUX_DEFAULT=/ s|=.*|=\"${KERNEL_OPTIONS}\"|" \ "/opt/ltsp/amd64/etc/ltsp/update-kernels.conf" 

рдЕрдм рд╣рдорд╛рд░реЗ рдкреИрд░реЛрдб рд╕реЗ рдПрдХ рд╕реНрдХреНрд╡рд╛рдб рдЫрд╡рд┐ рдмрдирд╛рдПрдВ:


 #   RUN rm -rf /opt/ltsp/amd64/var/lib/apt/lists \ && ltsp-chroot apt-get clean #  squashed  RUN ltsp-update-image 

рд╕реНрдЯреЗрдЬ 5: рдЕрдВрддрд┐рдо рдЪрд░рдг


рдЕрдВрддрд┐рдо рдЪрд░рдг рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рдЕрдкрдиреА рд╕реНрдХреНрд╡реИрд╢ рдЫрд╡рд┐ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЛ рдЗрдирдЯреНрд░реНрд░рд╛рдордлреНрд╕ рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ


 FROM ltsp-base COPY --from=ltsp-image /opt/ltsp/images /opt/ltsp/images COPY --from=ltsp-image /etc/nbd-server/conf.d /etc/nbd-server/conf.d COPY --from=ltsp-image /var/lib/tftpboot /var/lib/tftpboot 

рдареАрдХ рд╣реИ, рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  • TFTP рд╕рд░реНрд╡рд░
  • NBD рд╕рд░реНрд╡рд░
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рд╣реБрдЖ рдмреВрдЯрд▓реЛрдбрд░
  • initramfs рдХреЗ рд╕рд╛рде рдХрд░реНрдиреЗрд▓
  • рдЯреВрдЯреА рд╣реБрдИ рдЬрдбрд╝реЗрдВ рдЫрд╡рд┐

рдХреЗ рдЙрдкрдпреЛрдЧ


рдареАрдХ рд╣реИ, рдЕрдм рдЬрдм рдПрд▓рдЯреАрдПрд╕рдкреА рд╕рд░реНрд╡рд░, рдХрд░реНрдиреЗрд▓, рдЗрдирдЯреНрд░рд╛рдореНрд░рд╛рдореНрд╕ рдФрд░ рд╕реНрдХреНрд╡реИрд╢ рд░реВрдЯрдлреБрдЯ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдбреЙрдХрд░ рдЫрд╡рд┐ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рддреИрдирд╛рддреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╣рдо рдЗрд╕реЗ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рдореБрджреНрджрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдореЗрдВ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдо рдЕрдкрдиреА рддреИрдирд╛рддреА рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХреБрдмреЗрд░рдиреЗрдЯ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмреВрдЯ рд╕рдордп рдкрд░ рдиреЛрдбреНрд╕ рдХреБрдмреЗрд░рдиреЗрдЯ рдХреНрд▓рд╕реНрдЯрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдПрдХреНрд╕рдЯрд░реНрдирд▓рд┐рдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдмреЗрд░рдиреЗрдЯ рд╣рдореЗрд╢рд╛ рдПрдирдПрдЯреАрдЖрдИрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред


рдореИрдВ рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рдЬрд╛рдирддрд╛ рд╣реВрдВ: hostNetwork: true рдЙрдкрдпреЛрдЧ hostNetwork: true рдпрд╛ hostNetwork: true рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╣рдореЗрдВ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рднреА рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдИрдкреА рдкрддрд╛ рдХрдВрдЯреЗрдирд░ рдХреЗ рд╕рд╛рде рджреВрд╕рд░реЗ рдиреЛрдб рдореЗрдВ рдЪрд▓рд╛ рдЬрд╛рдПрдЧрд╛ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдкрд┐рдкрд╡рд░реНрдХ рдПрдХ рджреЗрд╢реА рдФрд░ рдХрдо рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред
рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдФрд░ рдЙрдкрдпреБрдХреНрдд рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рд╣рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрддрд╛рдПрдВред


рдпрд╣рд╛рдБ hostNetwork рдХреЗ рд╕рд╛рде рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░рд┐рдирд┐рдпреЛрдЬрди рд╣реИ:


 apiVersion: extensions/v1beta1 kind: Deployment metadata: name: ltsp-server labels: app: ltsp-server spec: selector: matchLabels: name: ltsp-server replicas: 1 template: metadata: labels: name: ltsp-server spec: hostNetwork: true containers: - name: tftpd image: registry.example.org/example/ltsp:latest command: [ "/usr/sbin/in.tftpd", "-L", "-u", "tftp", "-a", ":69", "-s", "/var/lib/tftpboot" ] lifecycle: postStart: exec: command: ["/bin/sh", "-c", "cd /var/lib/tftpboot/ltsp/amd64; ln -sf config/lts.conf ." ] volumeMounts: - name: config mountPath: "/var/lib/tftpboot/ltsp/amd64/config" - name: nbd-server image: registry.example.org/example/ltsp:latest command: [ "/bin/nbd-server-wrapper.sh" ] volumes: - name: config configMap: name: ltsp-config 

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рджреЗрдЦрд╛ рд╣реЛрдЧрд╛, lts.conf рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рднреА рдпрд╣рд╛рдБ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рд╡рд┐рдиреНрдпрд╛рд╕ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рджреВрдВрдЧрд╛:


 apiVersion: v1 kind: ConfigMap metadata: name: ltsp-config data: lts.conf: | [default] KEEP_SYSTEM_SERVICES = "ssh ureadahead dbus-org.freedesktop.login1 systemd-logind polkitd cgmanager ufw rpcbind nfs-kernel-server" PREINIT_00_TIME = "ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime" PREINIT_01_FIX_HOSTNAME = "sed -i '/^127.0.0.2/d' /etc/hosts" PREINIT_02_DOCKER_OPTIONS = "sed -i 's|^ExecStart=.*|ExecStart=/usr/bin/dockerd -H fd:// --storage-driver overlay2 --iptables=false --ip-masq=false --log-driver=json-file --log-opt=max-size=10m --log-opt=max-file=5|' /etc/systemd/system/docker.service" FSTAB_01_SSH = "/dev/data/ssh /etc/ssh ext4 nofail,noatime,nodiratime 0 0" FSTAB_02_JOURNALD = "/dev/data/journal /var/log/journal ext4 nofail,noatime,nodiratime 0 0" FSTAB_03_DOCKER = "/dev/data/docker /var/lib/docker ext4 nofail,noatime,nodiratime 0 0" # Each command will stop script execution when fail RCFILE_01_SSH_SERVER = "cp /rofs/etc/ssh/*_config /etc/ssh; ssh-keygen -A" RCFILE_02_SSH_CLIENT = "mkdir -p /root/.ssh/; echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBSLYRaORL2znr1V4a3rjDn3HDHn2CsvUNK1nv8+CctoICtJOPXl6zQycI9KXNhANfJpc6iQG1ZPZUR74IiNhNIKvOpnNRPyLZ5opm01MVIDIZgi9g0DUks1g5gLV5LKzED8xYKMBmAfXMxh/nsP9KEvxGvTJB3OD+/bBxpliTl5xY3Eu41+VmZqVOz3Yl98+X8cZTgqx2dmsHUk7VKN9OZuCjIZL9MtJCZyOSRbjuo4HFEssotR1mvANyz+BUXkjqv2pEa0I2vGQPk1VDul5TpzGaN3nOfu83URZLJgCrX+8whS1fzMepUYrbEuIWq95esjn0gR6G4J7qlxyguAb9 admin@kubernetes' >> /root/.ssh/authorized_keys" RCFILE_03_KERNEL_DEBUG = "sysctl -w kernel.unknown_nmi_panic=1 kernel.softlockup_panic=1; modprobe netconsole netconsole=@/vmbr0,@10.9.0.15/" RCFILE_04_SYSCTL = "sysctl -w fs.file-max=20000000 fs.nr_open=20000000 net.ipv4.neigh.default.gc_thresh1=80000 net.ipv4.neigh.default.gc_thresh2=90000 net.ipv4.neigh.default.gc_thresh3=100000" RCFILE_05_FORWARD = "echo 1 > /proc/sys/net/ipv4/ip_forward" RCFILE_06_MODULES = "modprobe br_netfilter" RCFILE_07_JOIN_K8S = "kubeadm join --token 2a4576.504356e45fa3d365 10.9.0.20:6443 --discovery-token-ca-cert-hash sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBSLYRaORL2znr1V4a3rjDn3HDHn2CsvUNK1nv8 + CctoICtJOPXl6zQycI9KXNhANfJpc6iQG1ZPZUR74IiNhNIKvOpnNRPyLZ5opm01MVIDIZgi9g0DUks1g5gLV5LKzED8xYKMBmAfXMxh / nsP9KEvxGvTJB3OD + / bBxpliTl5xY3Eu41 + VmZqVOz3Yl98 + X8cZTgqx2dmsHUk7VKN9OZuCjIZL9MtJCZyOSRbjuo4HFEssotR1mvANyz + BUXkjqv2pEa0I2vGQPk1VDul5TpzGaN3nOfu83URZLJgCrX + 8whS1fzMepUYrbEuIWq95esjn0gR6G4J7qlxyguAb9 рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ @ Kubernetes' >> /root/.ssh/authorized_keys" apiVersion: v1 kind: ConfigMap metadata: name: ltsp-config data: lts.conf: | [default] KEEP_SYSTEM_SERVICES = "ssh ureadahead dbus-org.freedesktop.login1 systemd-logind polkitd cgmanager ufw rpcbind nfs-kernel-server" PREINIT_00_TIME = "ln -sf /usr/share/zoneinfo/Europe/Prague /etc/localtime" PREINIT_01_FIX_HOSTNAME = "sed -i '/^127.0.0.2/d' /etc/hosts" PREINIT_02_DOCKER_OPTIONS = "sed -i 's|^ExecStart=.*|ExecStart=/usr/bin/dockerd -H fd:// --storage-driver overlay2 --iptables=false --ip-masq=false --log-driver=json-file --log-opt=max-size=10m --log-opt=max-file=5|' /etc/systemd/system/docker.service" FSTAB_01_SSH = "/dev/data/ssh /etc/ssh ext4 nofail,noatime,nodiratime 0 0" FSTAB_02_JOURNALD = "/dev/data/journal /var/log/journal ext4 nofail,noatime,nodiratime 0 0" FSTAB_03_DOCKER = "/dev/data/docker /var/lib/docker ext4 nofail,noatime,nodiratime 0 0" # Each command will stop script execution when fail RCFILE_01_SSH_SERVER = "cp /rofs/etc/ssh/*_config /etc/ssh; ssh-keygen -A" RCFILE_02_SSH_CLIENT = "mkdir -p /root/.ssh/; echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDBSLYRaORL2znr1V4a3rjDn3HDHn2CsvUNK1nv8+CctoICtJOPXl6zQycI9KXNhANfJpc6iQG1ZPZUR74IiNhNIKvOpnNRPyLZ5opm01MVIDIZgi9g0DUks1g5gLV5LKzED8xYKMBmAfXMxh/nsP9KEvxGvTJB3OD+/bBxpliTl5xY3Eu41+VmZqVOz3Yl98+X8cZTgqx2dmsHUk7VKN9OZuCjIZL9MtJCZyOSRbjuo4HFEssotR1mvANyz+BUXkjqv2pEa0I2vGQPk1VDul5TpzGaN3nOfu83URZLJgCrX+8whS1fzMepUYrbEuIWq95esjn0gR6G4J7qlxyguAb9 admin@kubernetes' >> /root/.ssh/authorized_keys" RCFILE_03_KERNEL_DEBUG = "sysctl -w kernel.unknown_nmi_panic=1 kernel.softlockup_panic=1; modprobe netconsole netconsole=@/vmbr0,@10.9.0.15/" RCFILE_04_SYSCTL = "sysctl -w fs.file-max=20000000 fs.nr_open=20000000 net.ipv4.neigh.default.gc_thresh1=80000 net.ipv4.neigh.default.gc_thresh2=90000 net.ipv4.neigh.default.gc_thresh3=100000" RCFILE_05_FORWARD = "echo 1 > /proc/sys/net/ipv4/ip_forward" RCFILE_06_MODULES = "modprobe br_netfilter" RCFILE_07_JOIN_K8S = "kubeadm join --token 2a4576.504356e45fa3d365 10.9.0.20:6443 --discovery-token-ca-cert-hash sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855" 

  • KEEP_SYSTEM_SERVICES - рдмреВрдЯ рдХреЗ рджреМрд░рд╛рди LTSP рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХреБрдЫ рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рдЗрд╕ рдЪрд░ рдХреЛ рдпрд╣рд╛рдБ рд╕реВрдЪреАрдмрджреНрдз рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред
  • PREINIT_ * - рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдХрдорд╛рдВрдб рд╕рд┐рд╕реНрдЯрдо рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рдПрдЧреА (рдпрд╣ рдлреАрдЪрд░ feature_preinit.dk рдкреИрдЪ рджреНрд╡рд╛рд░рд╛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛)
  • FSTAB_ * - рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ /etc/fstab рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
    рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдореИрдВ nofail рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдирд┐рдореНрди рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрддрд╛ рд╣реИ, рдХрд┐ рдпрджрд┐ рдЕрдиреБрднрд╛рдЧ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рддреЛ рдбрд╛рдЙрдирд▓реЛрдб рдмрд┐рдирд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдЬрд╛рд░реА рд╣реИред
  • RCFILE_ * - рдЗрди рдХрдорд╛рдВрдбреЛрдВ рдХреЛ rc.local рдлрд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕реЗ рд╕рд┐рд╕реНрдЯрдордб рджреНрд╡рд╛рд░рд╛ рдмреВрдЯ рд╕рдордп рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
    рдпрд╣рд╛рдВ рдореИрдВ рдЖрд╡рд╢реНрдпрдХ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ, рдХреБрдЫ sysctl рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдЪрд▓рд╛рддрд╛ kubeadm join , рдФрд░ рдлрд┐рд░ kubeadm join рдХрдорд╛рдВрдб kubeadm join , рдЬреЛ рдиреЛрдб рдХреЛ kubernetes рдХреНрд▓рд╕реНрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИред

рдЖрдк lts.conf рдореИрдиреБрдЕрд▓ рдкреЗрдЬ рд╕реЗ рд╕рднреА рдЪрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдЕрдм рдЖрдк рдЕрдкрдиреЗ рдбреАрдПрдЪрд╕реАрдкреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ, next-server рдФрд░ filename рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЬреЛ рдХреБрдЫ рднреА рдЪрд╛рд╣рд┐рдП рд╡рд╣ рд╣реИред


рдореИрдВ ISC-DHCP рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдореИрдВ dhcpd.conf рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:


 shared-network ltsp-netowrk { subnet 10.9.0.0 netmask 255.255.0.0 { authoritative; default-lease-time -1; max-lease-time -1; option domain-name "example.org"; option domain-name-servers 10.9.0.1; option routers 10.9.0.1; next-server ltsp-1; # write ltsp-server hostname here if option architecture = 00:07 { filename "/ltsp/amd64/grub/x86_64-efi/core.efi"; } else { filename "/ltsp/amd64/grub/i386-pc/core.0"; } range 10.9.200.0 10.9.250.254; } 

рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рд▓рд┐рдП, рдореЗрд░реЗ рдкрд╛рд╕ рдХрдИ рдПрд▓рдЯреАрдПрд╕рдкреА-рд╕рд░реНрд╡рд░ рд╣реИрдВ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдореИрдВ рдПрдХ рдЕрд▓рдЧ рд╕реНрдерд┐рд░ рдЖрдИрдкреА-рдкрддрд╛ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рдХрд┐ рдРрдиреНрд╕рд┐рдмрд▓-рдкреНрд▓реЗрдмреБрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рдЕрдкрдирд╛ рдкрд╣рд▓рд╛ рдиреЛрдб рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдФрд░ рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ рдЖрдкрдХреЛ рдЙрд╕ рдкрд░ рдПрдХ рд▓реЛрдбреЗрдб рд╕рд┐рд╕реНрдЯрдо рдорд┐рд▓реЗрдЧрд╛ред рдиреЛрдб рдХреЛ рдХреБрдмреЗрд░рдиреЗрдЯ рд╕рдореВрд╣ рдореЗрдВ рднреА рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред


рдЕрдм рдЖрдк рд╕реНрд╡рдпрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рдФрд░ рдЪрд╛рд╣рд┐рдП, рддреЛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ LTSP рдмрд╣реБрдд рдЖрд╕рд╛рдиреА рд╕реЗ рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрдХреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрд░реЛрдд рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ, рд╡рд╣рд╛рдВ рдЖрдк рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрддреНрддрд░ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред


рд╣рдорд╛рд░реЗ рдЯреЗрд▓реАрдЧреНрд░рд╛рдо рдЪреИрдирд▓ рд╕реЗ рдЬреБрдбрд╝реЗрдВ: @ltsp_ru

Source: https://habr.com/ru/post/hi423785/


All Articles