
рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рд╢рд╛рдВрдд рддрдХрдиреАрдХ рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдореИрдВ рдЗрд╕реЗ рдХреБрдмреЗрд░рдиреЗрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдмрдбрд╝реЗ рд╕рдореВрд╣реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдЕрдм рд╕реЗ, рдЖрдкрдХреЛ рдУрдПрд╕ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рдкреИрдХреЗрдЬ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИред рдХреНрдпреЛрдВ? рдЖрдк рдпрд╣ рд╕рдм рдбреЙрдХрдлрд╛рдЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ!
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рд╕реИрдХрдбрд╝реЛрдВ рдирдП рд╕рд░реНрд╡рд░ рдЦрд░реАрдж рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рдХрд╛рдо рдХреЗ рдорд╛рд╣реМрд▓ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд▓рдЧрднрдЧ рддреБрд░рдВрдд рдЙрдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд╣реИ!
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 \
рдлрд┐рд▓рд╣рд╛рд▓, рд╣рдорд╛рд░реА рдбреЙрдХрдЯрд░ рдЫрд╡рд┐ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд┐рдореНрди рд╕реНрдерд╛рдкрд┐рдд рд╣реИ:
- NBD рд╕рд░реНрд╡рд░
- TFTP рд╕рд░реНрд╡рд░
- рдЧреНрд░рдм рдмреВрдЯрд▓реЛрдбрд░ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде LTSP рд╕реНрдХреНрд░рд┐рдкреНрдЯреНрд╕ (EFI рдХреЗ рд▓рд┐рдП)
рд╕реНрдЯреЗрдЬ 2: рдмреЗрд╕рд╕рд┐рд╕реНрдЯрдо
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдЪреЗрд░реЛрдЯ рд╡рд╛рддрд╛рд╡рд░рдг рддреИрдпрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрд░реНрдиреЗрд▓ рдХреЗ рд╕рд╛рде рдореБрдЦреНрдп рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред
рд╣рдо рдЗрдореЗрдЬ рдХреЛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП ltsp-build-client рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рдорд╛рдиреНрдп debootstrap рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ ltsp-build-client GUI рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЪреАрдЬреЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕рд░реНрд╡рд░ рдХреЛ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реЛрдВрдЧреЗред
FROM ltsp-base as basesystem ARG DEBIAN_FRONTEND=noninteractive
рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреБрдЫ рд╕рдВрдХреБрд▓, рдЬреИрд╕реЗ рдХрд┐ lvm2, рдореЗрдВ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдЕрдиреБрднрд╡ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╡реЗ рдПрдХ unprivileged рдЪреБрд░реЛрдЯ рдореЗрдВ рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рд╣реИрдВред рдЙрдирдХреА рдкреЛрд╕реНрдЯ-рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдЖрджреЗрд╢реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИрдВ рдЬреЛ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреВрд░реЗ рдкреИрдХреЗрдЬ рдХреА рд╕реНрдерд╛рдкрдирд╛ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рд╕рдорд╛рдзрд╛рди:
- рдХреБрдЫ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рдмрд┐рдирд╛ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдХрд░реНрдиреЗрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрдиреНрд╣реЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, lvm2)
- рд▓реЗрдХрд┐рди рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд┐рдирд╛ рдкреЛрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рд╕реНрдЯреЗрдЬ 3: рдмрд┐рд▓реНрдбрд░
рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдо рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдФрд░ рдХрд░реНрдиреЗрд▓ рдореЙрдбреНрдпреВрд▓ рд╕реНрд░реЛрддреЛрдВ рд╕реЗ рдПрдХрддреНрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдореЛрдб рдореЗрдВ рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдЗрд╕ рдЪрд░рдг рдХреЛ рдЫреЛрдбрд╝ рджреЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдХрд▓рд╛рдХрд╛рд░реЛрдВ рд╕реЗ рдХреБрдЫ рднреА рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рдореИрдВ MLNX_EN рдбреНрд░рд╛рдЗрд╡рд░ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреВрдВрдЧрд╛:
FROM basesystem as builder
рдЪрд░рдг 4: ltsp- рдЫрд╡рд┐
рдЗрд╕ рдЪрд░рдг рдореЗрдВ рд╣рдо рд╡рд╣реА рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдЬреЛ рд╣рдордиреЗ рдкрд┐рдЫрд▓реЗ рдЪрд░рдг рдореЗрдВ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рд╣реИ:
FROM basesystem as ltsp-image
рдЕрдм рд╣рдо рдЕрдкрдиреА LTSP рдЫрд╡рд┐ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдмрджрд▓рд╛рд╡ рдХрд░реЗрдВрдЧреЗ:
рдЕрдм рд╣рдорд╛рд░реЗ рдкреИрд░реЛрдб рд╕реЗ рдПрдХ рд╕реНрдХреНрд╡рд╛рдб рдЫрд╡рд┐ рдмрдирд╛рдПрдВ:
рд╕реНрдЯреЗрдЬ 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