{"id":459561,"date":"2025-05-14T09:06:08","date_gmt":"2025-05-14T09:06:08","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=459561"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=459561","title":{"rendered":"<span>\u041a\u0430\u043a \u043c\u044b \u0432\u043d\u0435\u0434\u0440\u044f\u0435\u043c ALD Pro: \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u044b\u0439 \u043e\u0431\u0437\u043e\u0440 \u0440\u0435\u0448\u0435\u043d\u0438\u044f, \u043a\u0435\u0439\u0441\u044b \u0438 \u043b\u0430\u0439\u0444\u0445\u0430\u043a\u0438 \u0434\u043b\u044f \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/span>"},"content":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u043b\u0443\u0436\u0431\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0438\u0433\u0440\u0430\u044e\u0442 \u0432\u0430\u0436\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0432 \u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043b\u044e\u0431\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u041a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043b\u0443\u0436\u0431\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u043e-\u0441\u0432\u043e\u0435\u043c\u0443, \u043e\u0442\u0441\u044e\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0435\u0435 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 ALD\u00a0Pro\u00a0\u043e\u0442 \u00ab\u0413\u0440\u0443\u043f\u043f\u044b \u0410\u0441\u0442\u0440\u0430\u00bb \u2014 \u043a\u0430\u043a \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0433\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432.\u00a0  \u00a0<\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442,\u00a0\u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0423\u0441\u043e\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c \u0432 K2Tex.\u00a0\u041a\u043e\u0433\u0434\u0430 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430\u043c \u043f\u0440\u043e ALD\u00a0Pro, \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0443\u0442\u043e\u0447\u043d\u044f\u044e: \u044d\u0442\u043e \u043d\u0435 \u0436\u0451\u0441\u0442\u043a\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0421\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0443\u0436\u0435 \u043c\u043e\u0449\u043d\u044b\u0439 \u0438 \u0433\u0438\u0431\u043a\u0438\u0439, \u0430 \u0432\u0435\u043d\u0434\u043e\u0440 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u043e\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u044d\u0442\u0438\u043c \u043c\u044b \u0432 K2\u0422\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f. \u0423 \u043d\u0430\u0441 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u0430\u0441\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0438\u0437\u0430, \u0438 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0433\u0434\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u0430 \u0433\u0434\u0435 \u2014 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0431\u0438\u0437\u043d\u0435\u0441\u0430. \u041c\u043e\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430 \u043d\u0430\u0435\u0434\u0438\u043d\u0435 \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u043c\u0443.  <\/p>\n<h2>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 ALD Pro<\/h2>\n<p>ALD\u00a0Pro\u00a0\u2014 \u044d\u0442\u043e\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/794214\/\">\u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0430\u044f \u0441\u043b\u0443\u0436\u0431\u0430\u00a0\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u043c\u0438 \u0441\u0442\u0430\u043d\u0446\u0438\u044f\u043c\u0438, \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u0412 \u043e\u0441\u043d\u043e\u0432\u0443 ALD\u00a0Pro\u00a0\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u00a0FreeIPA, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438\u00a0Salt\u00a0\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435\u00a0\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b.  <\/p>\n<p>\u0423 \u00ab\u0413\u0440\u0443\u043f\u043f\u044b \u0410\u0441\u0442\u0440\u0430\u00bb \u0435\u0441\u0442\u044c \u0431\u043b\u043e\u0433 \u043d\u0430\u00a0\u0425\u0430\u0431\u0440\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0449\u0451 \u0438 \u0432\u043e\u0442 \u044d\u0442\u0438\u00a0\u043f\u043e\u0441\u0442\u044b:\u00a0\u00a0  <\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/794214\/\">\u0412\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0430, \u0438\u043b\u0438 \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u041e\u0421 Astra Linux \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ALD Pro<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/891064\/\">\u041a\u0430\u043a \u043c\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u0443\u044e FreeIPA \u0432 20 \u0440\u0430\u0437!!! (\u043f\u043e\u0447\u0442\u0438)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/866974\/\">\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 SAMBA \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/886300\/\">\u041a\u0430\u043a \u043c\u044b \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043b\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u044b \u0432 K2Tex \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c ALD\u00a0Pro\u00a0\u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438\u00a0\u0438\u043c\u043f\u043e\u0440\u0442\u043e\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445\u00a0\u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432. \u041a\u043e\u0433\u0434\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u0430 \u0438 \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0ALD\u00a0Pro\u00a0\u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u00a0\u0431\u0430\u0437\u043e\u0432\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443.\u00a0  <\/p>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f ALD Pro \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e API<\/h2>\n<p>\u0420\u0443\u0447\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 ALD\u00a0Pro\u00a0\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f\u0445 \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e API \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u00a0 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 ALD\u00a0Pro.\u00a0<\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 2.2.0, \u0432 ALD\u00a0Pro\u00a0\u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 API,\u00a0\u00a0\u0447\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u2014 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0441, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0442\u043e\u0440\u043e\u0432.\u00a0\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 API \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 \u043b\u0438\u0447\u043d\u043e\u043c \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0435 \u0432 \u0432\u0438\u0434\u0435 YAML-\u0444\u0430\u0439\u043b\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435\u00a0OpenAPI. \u042d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c ALD\u00a0Pro\u00a0\u043d\u0435 \u0440\u0443\u043a\u0430\u043c\u0438, \u0430 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043a\u043d\u043e\u043f\u043a\u0438.\u00a0\u0412 K2Tex \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c ALD\u00a0Pro.\u00a0\u00a0<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0445\u043e\u0447\u0443 \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043c\u043e\u0438\u043c\u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435\u00a0Bash. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0438\u0436\u0435\u00a0(\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 ALD\u00a0Pro\u00a02.5.0):<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash     #**************************************************************************************************************************    #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 Astra Linux - BASE  ASTRA_BASE=\" http:\/\/dl.astralinux.ru\/astra\/frozen\/1.7_x86-64\/1.7.6\/uu\/2\/repository-base\/\"  #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 ALDPro  ALD_MAIN=\"https:\/\/dl.astralinux.ru\/aldpro\/frozen\/01\/2.5.0\/ \"    #\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0438\u043c\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  DC_NAME=\"dc1\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  IPADDR=\"192.168.8.10\"  #\u041c\u0430\u0441\u043a\u0430 \u0441\u0435\u0442\u0438  MASK=\"255.255.255.0\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u0448\u043b\u044e\u0437\u0430 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  GATEWAY=\"192.168.8.1\"  #\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0430  DOMAIN_NAME=\"ald.pro.ru\"  #IP-\u0430\u0434\u0440\u0435\u0441 DNS \u0441\u0435\u0440\u0435\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u041a\u0414 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432, \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u043d\u0430 127.0.0.1  NAMESERVER=\"77.88.8.8\"  #\u0412\u0432\u043e\u0434 \u043f\u0430\u0440\u043e\u043b\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430:\"  read -sr PASSWORD_ADMIN  #**************************************************************************************************************************    function install_pdc() {        #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Astra Linux  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list  deb $ASTRA_BASE 1.7_x86-64 main non-free contrib  EOL    #\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421 \u0434\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438  apt update -y  apt install astra-update -y &amp;&amp; sudo astra-update -A -r -T    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 ALD Pro  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list.d\/aldpro.list  deb $ALD_MAIN  1.7_x86-64  base  main  EOL    apt update -y    #\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 hostname  hostnamectl set-hostname $DC_NAME.$DOMAIN_NAME    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438  cat &lt;&lt;EOL &gt; \/etc\/network\/interfaces  source \/etc\/network\/interfaces.d\/*    auto lo  iface lo inet loopback    auto eth0  iface eth0 inet static  address $IPADDR  netmask $MASK  gateway $GATEWAY  dns-search $DOMAIN_NAME  EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \/etc\/hosts  cat &lt;&lt;EOL &gt; \/etc\/hosts  127.0.0.1 localhost.localdomain localhost  $IPADDR $DC_NAME.$DOMAIN_NAME $DC_NAME   EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \/etc\/resolv.conf  cat &lt;&lt;EOL &gt; \/etc\/resolv.conf  search $DOMAIN_NAME  nameserver $NAMESERVER  EOL    #\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b NetworkManager  systemctl stop NetworkManager  systemctl disable NetworkManager  systemctl enable networking  systemctl restart networking      #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438  LEVEL=`astra-modeswitch get`    case $LEVEL in  0|1)            astra-modeswitch set 2          astra-mic-control enable          astra-mac-control enable          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;    2)          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;  esac    #\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432  DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp aldpro-syncer aldpro-gc    #\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 aldpro-mp  ALDPRO_CHECK=`dpkg -l | grep aldpro-mp`  if [[ -z $ALDPRO_CHECK ]];  then  echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d! \u041f\u0430\u043a\u0435\u0442 aldpro-mp - \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.\"  exit 1    else    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \/etc\/resolv.conf  cat &lt;&lt;EOL &gt; \/etc\/resolv.conf  search $DOMAIN_NAME  nameserver 127.0.0.1  EOL    systemctl restart networking    #\u0417\u0430\u043f\u0443\u0441\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  aldpro-server-install -d $DOMAIN_NAME  -p $PASSWORD_ADMIN -n $DC_NAME --ip $IPADDR  --setup_syncer --setup_gc --no-reboot    fi  reboot    }      if [[ -z $DC_NAME ||  -z $IPADDR  ||  -z $MASK  ||  -z $GATEWAY  ||  -z $NAMESERVER  ||  -z $DOMAIN_NAME  ||  -z $PASSWORD_ADMIN ]];  then    echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430! \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430.\"    else    install_pdc    fi <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0438\u0436\u0435 (\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 ALD\u00a0Pro\u00a02.5.0):\u00a0<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash     #**************************************************************************************************************************    #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 Astra Linux - BASE  ASTRA_BASE=\"http:\/\/dl.astralinux.ru\/astra\/frozen\/1.7_x86-64\/1.7.6\/uu\/2\/repository-base\/\"  #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 ALDPro  ALD_MAIN=\"https:\/\/dl.astralinux.ru\/aldpro\/frozen\/01\/2.5.0\/ \"    #\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430  SERVER_NAME=\"dc2\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430  IPADDR=\"192.168.8.11\"  #\u041c\u0430\u0441\u043a\u0430 \u0441\u0435\u0442\u0438  MASK=\"255.255.255.0\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u0448\u043b\u044e\u0437\u0430 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  GATEWAY=\"192.168.8.1\"  #\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0430  DOMAIN_NAME=\"ald.pro.ru\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  NAMESERVER=\"192.168.8.10\"  FIRST_DC_NAME=\"dc1\"  SITENAME=\"\u0413\u043e\u043b\u043e\u0432\u043d\u043e\u0439 \u043e\u0444\u0438\u0441\"  #\u0412\u0432\u043e\u0434 \u0438\u043c\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d  echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d:\"  read  ADMIN_NAME  #\u0412\u0432\u043e\u0434 \u043f\u0430\u0440\u043e\u043b\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d  echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d:\"  read -sr PASSWORD_ADMIN    #**************************************************************************************************************************    function join_domain() {    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 hostname  hostnamectl set-hostname $SERVER_NAME.$DOMAIN_NAME       #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438  systemctl stop NetworkManager  systemctl disable NetworkManager  systemctl enable networking    cat &lt;&lt;EOL &gt; \/etc\/network\/interfaces  source \/etc\/network\/interfaces.d\/*    auto lo  iface lo inet loopback    auto eth0  iface eth0 inet static  address $IPADDR  netmask $MASK  gateway $GATEWAY  dns-nameservers $NAMESERVER  dns-search $DOMAIN_NAME   EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \/etc\/hosts  cat &lt;&lt;EOL &gt; \/etc\/hosts  127.0.0.1 localhost.localdomain localhost  $IPADDR $SERVER_NAME.$DOMAIN_NAME  $PC_NAME  EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \/etc\/resolv.conf  cat &lt;&lt;EOL &gt; \/etc\/resolv.conf  search $DOMAIN_NAME  nameserver $NAMESERVER  EOL    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Astra Linux  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list  deb $ASTRA_BASE 1.7_x86-64 main non-free contrib  EOL    #\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421  apt update -y  apt install astra-update -y &amp;&amp; sudo astra-update -A -r -T    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 ALD Pro  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list.d\/aldpro.list  deb $ALD_MAIN 1.7_x86-64  base  main  EOL    systemctl restart networking    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438  LEVEL=`astra-modeswitch get`    case $LEVEL in  0|1)            astra-modeswitch set 2          astra-mic-control enable          astra-mac-control enable          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;    2)          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;  esac    #\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 ALD Pro  apt update -y  DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-client  ALDPRO_CHECK=`dpkg -l | grep aldpro-client`    if [[ -z $ALDPRO_CHECK ]];  then  echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d! \u041f\u0430\u043a\u0435\u0442 aldpro-client - \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.\"  exit 1    else    #\u0412\u0432\u043e\u0434 \u0432 \u0434\u043e\u043c\u0435\u043d  \/opt\/rbta\/aldpro\/client\/bin\/aldpro-client-installer -c $DOMAIN_NAME  -u $ADMIN_NAME  -p $PASSWORD_ADMIN -d $SERVER_NAME -i -f    sleep 10  systemctl stop sssd   sed -i '\/id_provider = ipa\/a dyndns_update = true\\ndyndns_refresh_interval = 60' \/etc\/sssd\/sssd.conf  systemctl restart sssd       fi      }    function install_roles() {      echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c? (DC, DHCP, REPO, CUPS, FS, MON, LOG, PXE):\"      read  ROLE_NAME      echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b $ROLE_NAME:\"      read  ROLE_USERNAME      echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b $ROLE_NAME:\"      read -sr ROLE_PASSWORD       curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/login\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{  \\\"data\\\": { \\\"login\\\": \\\"$ROLE_USERNAME\\\", \\\"password\\\": \\\"$ROLE_PASSWORD\\\" } }\" \\            -c curl.cookie             case $ROLE_NAME in      DC)          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME.\/ad\/api\/ds\/domain-controllers\" \\               -H 'accept: application\/json' \\               -H 'Content-Type: application\/json' \\               -d \"{\\\"data\\\": { \\\"domaincontroller_ipa_login\\\": \\\"admin\\\",                              \\\"domaincontroller_ipa_password\\\": \\\"QAZxsw123\\\",                              \\\"domaincontroller_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\",                              \\\"domaincontroller_roles\\\": [],                              \\\"domaincontroller_site_name\\\": \\\"$SITENAME\\\" } }\" \\               -b curl.cookie          ;;        DHCP)          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/dhcp\/servers\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{\\\"data\\\": { \\\"dhcpserver_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\", \\\"dhcpserver_site_name\\\": \\\"$SITENAME\\\" } }\" \\            -b curl.cookie          ;;        REPO)          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/repo\/servers\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{\\\"data\\\": { \\\"repositoryserver_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\", \\\"repositoryserver_site\\\": \\\"$SITENAME\\\" } }\" \\            -b curl.cookie          ;;        CUPS)          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/automation-tasks\/print_install\/run\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{                  \\\"data\\\": {                  \\\"automationtask_computer_groups\\\": [                    {                      \\\"automationtask_computer_group_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_computers\\\": [                    {                      \\\"automationtask_computer_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\"                    }                  ],                  \\\"automationtask_organizational_units\\\": [                    {                      \\\"automationtask_organizational_unit_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_parameters\\\": [                    {                      \\\"automationtask_attribute_cn\\\": \\\"sitename\\\",                      \\\"automationtask_attribute_value\\\": \\\"$SITENAME\\\"                    }                  ]                  }                }\" \\            -b curl.cookie          ;;        FS)          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/automation-tasks\/samba_install\/run\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{                  \\\"data\\\": {                  \\\"automationtask_computer_groups\\\": [                    {                      \\\"automationtask_computer_group_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_computers\\\": [                    {                      \\\"automationtask_computer_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\"                    }                  ],                  \\\"automationtask_organizational_units\\\": [                    {                      \\\"automationtask_organizational_unit_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_parameters\\\": [                    {                      \\\"automationtask_attribute_cn\\\": \\\"sitename\\\",                      \\\"automationtask_attribute_value\\\": \\\"$SITENAME\\\"                    }                  ]                  }                }\" \\            -b curl.cookie          ;;        MON)          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/automation-tasks\/grafana_zabbix_install\/run\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{                  \\\"data\\\": {                  \\\"automationtask_computer_groups\\\": [                    {                      \\\"automationtask_computer_group_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_computers\\\": [                    {                      \\\"automationtask_computer_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\"                    }                  ],                  \\\"automationtask_organizational_units\\\": [                    {                      \\\"automationtask_organizational_unit_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_parameters\\\": [                    {                      \\\"automationtask_attribute_cn\\\": \\\"sitename\\\",                      \\\"automationtask_attribute_value\\\": \\\"$SITENAME\\\"                    },                    {                      \\\"automationtask_attribute_cn\\\": \\\"servicerole\\\",                      \\\"automationtask_attribute_value\\\": \\\"master\\\"                    }                  ]                  }                }\" \\            -b curl.cookie          ;;      LOG)          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/automation-tasks\/audit_install\/run\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{                  \\\"data\\\": {                  \\\"automationtask_computer_groups\\\": [                    {                      \\\"automationtask_computer_group_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_computers\\\": [                    {                      \\\"automationtask_computer_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\"                    }                  ],                  \\\"automationtask_organizational_units\\\": [                    {                      \\\"automationtask_organizational_unit_name\\\": \\\"\\\"                    }                  ],                  \\\"automationtask_parameters\\\": [                    {                      \\\"automationtask_attribute_cn\\\": \\\"sitename\\\",                      \\\"automationtask_attribute_value\\\": \\\"$SITENAME\\\"                    },                    {                      \\\"automationtask_attribute_cn\\\": \\\"servicerole\\\",                      \\\"automationtask_attribute_value\\\": \\\"master\\\"                    }                  ]                  }                }\" \\            -b curl.cookie          ;;        PXE)          echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u043e\u043b\u043d\u043e\u0435 \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 DHCP \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0441\u0432\u044f\u0437\u043a\u0435 \u0441 PXE. \u0414\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e DHCP-\u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u0441\u0442\u0440\u043e\u043a\u0443 \u043f\u0443\u0441\u0442\u043e\u0439\"          read  DHCP_NAME          if [ -z \"$DHCP_NAME\" ]; then              DHCP_VALUE=\"true\"          else              DHCP_VALUE=\"false\"          fi          curl -X 'POST'  \"https:\/\/$FIRST_DC_NAME.$DOMAIN_NAME\/ad\/api\/ds\/installer-servers\" \\            -H 'accept: application\/json'  \\            -H 'Content-Type: application\/json' \\            -d \"{                  \\\"data\\\": {                       \\\"installerserver_dhcpserver\\\": \\\"$DHCP_VALUE\\\",                       \\\"installerserver_dhcpserver_name\\\": \\\"$DHCP_NAME\\\",                      \\\"installerserver_ip_address\\\": \\\"\\\",                      \\\"installerserver_name\\\": \\\"$SERVER_NAME.$DOMAIN_NAME\\\",                       \\\"installerserver_site_name\\\": \\\"$SITENAME\\\"                  }                }\" \\            -b curl.cookie          ;;          esac    }    if [[ -z $SERVER_NAME  ||  -z $IPADDR  ||  -z $MASK  ||  -z $GATEWAY  ||  -z $NAMESERVER  ||  -z $DOMAIN_NAME  ||  -z $PASSWORD_ADMIN  ||  -z $ADMIN_NAME ]];  then    echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430! \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430.\"    else    join_domain  install_roles    fi <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u042f\u0437\u044b\u043a\u00a0Bash\u00a0\u0443\u0434\u043e\u0431\u0435\u043d \u0434\u043b\u044f\u00a0\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u00a0\u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0439 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u00a0\u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b \u0434\u043b\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.\u00a0\u041d\u043e \u0432 \u0442\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u0447, \u0438 \u043f\u0435\u0440\u0435\u0434 \u043d\u0430\u043c\u0438 \u0441\u0442\u043e\u044f\u0442 \u0432\u043e\u043f\u0440\u043e\u0441\u044b\u00a0\u043a\u043e\u043d\u0441\u0438\u0441\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438, \u0438\u0434\u0435\u043c\u043f\u043e\u0442\u0435\u043d\u0442\u043d\u043e\u0441\u0442\u0438,\u00a0\u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u0435\u0435\u00a0\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0441\u0438\u0441\u0442\u0435\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440,\u00a0\u0441\u0435\u0439\u0447\u0430\u0441\u00a0\u044f\u00a0\u043f\u0435\u0440\u0435\u043d\u043e\u0448\u0443\u00a0\u0432\u0441\u0435\u00a0\u0441\u0432\u043e\u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438\u00a0\u043d\u0430\u00a0Ansible\u00a0\u0438\u00a0 \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c \u0441 \u0432\u0430\u043c\u0438\u00a0\u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438, \u0430 \u0438\u043c\u0435\u043d\u043d\u043e \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043a API\u00a0 ALD\u00a0Pro\u00a0\u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c.\u00a0<\/p>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440 \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u0438 \u0432 API:\u00a0<\/p>\n<pre><code class=\"bash\">- name: ALD api login    ansible.builtin.uri:       validate_certs: true      url: \"https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/login\"      method: POST      headers:        accept: application\/json        Content-Type: application\/json      body_format: json      body:         data:           login: \"{{ domain_admin }}\"          password: \"{{ domain_password }}\"      return_content: true    delegate_to: \"{{ dc01_fqdn }}\" <\/code><\/pre>\n<p>\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u0439 \u043a API \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">\u00a0ald_api:    dc:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/domain-controllers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/domain-controllers      body:        data:          domaincontroller_ipa_login: \"{{ domain_admin }}\"          domaincontroller_ipa_password: \"{{ domain_password }}\"          domaincontroller_name: \"{{ ansible_nodename }}\"          domaincontroller_roles: []          domaincontroller_site_name: \"{{ ald_site_name }}\"    fs:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/shared-folders\/servers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/automation-tasks\/samba_install\/run      body:        data:          automationtask_computer_groups:            - automationtask_computer_group_name: ''          automationtask_computers:            - automationtask_computer_name: \"{{ ansible_nodename }}\"          automationtask_organizational_units:            - automationtask_organizational_unit_name: ''          automationtask_parameters:            - automationtask_attribute_cn: sitename              automationtask_attribute_value: \"{{ ald_site_name }}\"    audit:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/logging\/servers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/automation-tasks\/audit_install\/run      body:        data:          automationtask_computer_groups:            - automationtask_computer_group_name: ''          automationtask_computers:            - automationtask_computer_name: \"{{ ansible_nodename }}\"          automationtask_organizational_units:            - automationtask_organizational_unit_name: ''          automationtask_parameters:            - automationtask_attribute_cn: sitename              automationtask_attribute_value: \"{{ ald_site_name }}\"            - automationtask_attribute_cn: servicerole              automationtask_attribute_value: master    dhcp:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/dhcp\/servers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/dhcp\/servers      body:        data:          dhcpserver_name: \"{{ ansible_nodename }}\"          dhcpserver_site_name: \"{{ ald_site_name }}\"    ps:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/print-service\/servers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/automation-tasks\/print_install\/run      body:        data:          automationtask_computer_groups:            - automationtask_computer_group_name: ''          automationtask_computers:            - automationtask_computer_name: \"{{ ansible_nodename }}\"          automationtask_organizational_units:            - automationtask_organizational_unit_name: ''          automationtask_parameters:            - automationtask_attribute_cn: sitename              automationtask_attribute_value: \"{{ ald_site_name }}\"    repo:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/repo\/servers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/repo\/servers      body:        data:          repositoryserver_name: \"{{ ansible_nodename }}\"          repositoryserver_site: \"{{ ald_site_name }}\"    mon:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/monitoring\/servers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/automation-tasks\/grafana_zabbix_install\/run      body:        data:          automationtask_computer_groups:            - automationtask_computer_group_name: ''          automationtask_computers:            - automationtask_computer_name: \"{{ ansible_nodename }}\"          automationtask_organizational_units:            - automationtask_organizational_unit_name: ''          automationtask_parameters:            - automationtask_attribute_cn: sitename              automationtask_attribute_value: \"{{ ald_site_name }}\"            - automationtask_attribute_cn: servicerole              automationtask_attribute_value: \"master\"    pxe:      get_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/installer-servers      post_url: https:\/\/{{ dc01_fqdn }}\/ad\/api\/ds\/installer-servers      body:        data:          installerserver_dhcpserver: 'false'          installerserver_dhcpserver_name: '{{ dhcp_server_fqdn }}'          installerserver_ip_address: ''          installerserver_name: \"{{ ansible_nodename }}\"          installerserver_site_name: \"{{ ald_site_name }}\"<\/code><\/pre>\n<\/div>\n<\/details>\n<h2>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Active Directory \u043d\u0430 ALD Pro<\/h2>\n<p>\u0423\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 ALD\u00a0Pro\u00a0\u2014 \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u043e\u043b\u0434\u0435\u043b\u0430. \u0414\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0439, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0438\u043c\u043f\u043e\u0440\u0442\u043e\u0437\u0430\u043c\u0435\u0449\u0435\u043d\u0438\u044f, \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u0448\u0430\u0433\u043e\u043c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0439 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b, \u0447\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043d\u0430 \u0431\u0430\u0437\u0435\u00a0Microsoft\u00a0Active\u00a0Directory.\u00a0<\/p>\n<p>\u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438:\u00a0<\/p>\n<ul>\n<li>\n<p>\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 ALD\u00a0Pro\u00a0\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438\u0437\u00a0MS AD\u00a0(\u043d\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440);\u00a0\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 ALD\u00a0Pro\u00a0\u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 MS AD;\u00a0<\/p>\n<\/li>\n<li>\n<p>Pragmatic\u00a0Tools\u00a0Migrator;\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 K2Tex.\u00a0<\/p>\n<\/li>\n<\/ul>\n<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u043a\u0430\u0436\u0434\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435.<\/p>\n<h3>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 ALD Pro \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 MS AD<\/h3>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0441\u0430\u043c\u043e\u0439 \u043f\u0435\u0440\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 ALD\u00a0Pro,\u00a0\u0432 \u043d\u0435\u043c \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 MS AD. \u0412 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0439\u0442\u0438 \u043f\u043e \u043f\u0443\u0442\u0438: <strong>\u00ab<\/strong>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u043e\u043c<strong>\u00bb<\/strong> -&gt; <strong>\u00ab<\/strong>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0434\u043e\u043c\u0435\u043d\u0430\u043c\u0438<strong>\u00bb<\/strong> -&gt; <strong>\u00ab<\/strong>\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u0438\u044f\u00a0\u0441 MS AD<strong>\u00bb<\/strong>.\u00a0<\/p>\n<p>\u0417\u0430\u043f\u0443\u0441\u043a \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\u00a0<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8b3\/40a\/725\/8b340a7253682f8f67825f5b6cfc8bcb.png\" width=\"1037\" height=\"545\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/8b3\/40a\/725\/8b340a7253682f8f67825f5b6cfc8bcb.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/8b3\/40a\/725\/8b340a7253682f8f67825f5b6cfc8bcb.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u00a0<\/p>\n<p>\u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u043c\u0435\u043d\u043e\u0432 MS AD \u0438 ALD\u00a0Pro, \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 (\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0433\u0440\u0443\u043f\u043f\u044b, \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f) \u0438 \u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0440\u0430\u0437\u043e\u0432\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u0430 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0438\u0437\u00a0\u0434\u043e\u043c\u0435\u043d\u0430 MS AD \u0432 ALD\u00a0Pro. \u041d\u043e \u0432 \u043d\u0451\u043c \u0435\u0441\u0442\u044c \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f:\u00a0<\/p>\n<ol>\n<li>\n<p>\u0412 \u0445\u043e\u0434\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0438\u0437 MS AD \u043f\u0435\u0440\u0435\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0432 ALD\u00a0Pro\u00a0\u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u0440\u0430\u0437. \u0415\u0441\u043b\u0438 \u043f\u043e\u0441\u043b\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u043e\u0431\u044a\u0435\u043a\u0442\u0430 \u0432 MS AD\u00a0\u0431\u0443\u0434\u0443\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u044b, \u0442\u043e \u043f\u0440\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u044d\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u0442\u0440\u0430\u0437\u044f\u0442\u0441\u044f \u0432 ALD\u00a0Pro. \u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0435\u0440\u0435\u043d\u0435\u0441\u0442\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043d\u044b\u0439 \u043e\u0431\u044a\u0435\u043a\u0442 \u0435\u0449\u0435 \u0440\u0430\u0437, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0435\u0433\u043e \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0438\u0437\u00a0ALD\u00a0Pro.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0427\u0442\u043e\u0431\u044b \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0447\u043b\u0435\u043d\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u0433\u0440\u0443\u043f\u043f\u0430\u0445, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u0441\u0435 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u0437 MS AD,\u00a0\u0438 \u0442\u043e\u043b\u044c\u043a\u043e\u00a0\u0437\u0430\u0442\u0435\u043c\u00a0\u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u00a0\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041d\u0438\u0433\u0434\u0435 \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0441\u0442\u0430\u0442\u0443\u0441\u044b \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 (\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043c\u0438\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\/\u0441 \u043e\u0448\u0438\u0431\u043a\u043e\u0439 \u0438\u043b\u0438 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u0438). \u0422\u043e\u043b\u044c\u043a\u043e \u043f\u043e \u0444\u0430\u043a\u0442\u0443 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043e\u0436\u043d\u043e\u00a0\u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441\u00a0\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438\u00a0\u0435\u0435\u00a0\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.\u00a0<\/p>\n<\/li>\n<\/ol>\n<p>\u042d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u0440\u043e\u0441\u0442 \u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438, \u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0440\u0430\u0437\u043e\u0432\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 MS AD \u0432 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445 \u0434\u043e 2-3 \u0442\u044b\u0441\u044f\u0447 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432. \u041d\u0430\u043c, \u043a\u043e\u043d\u0435\u0447\u043d\u043e, \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0438 \u044d\u0442\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0438 \u043d\u0430 20-30 \u0442\u044b\u0441\u044f\u0447, \u043d\u043e \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0435\u0440\u0432\u0435\u0440\u0443\u00a0\u043d\u0443\u0436\u043d\u043e\u00a0\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u00a0\u043d\u0430\u043a\u0438\u0434\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0440\u0435\u0441\u0443\u0440\u0441\u044b\u00a0\u0438\u00a0\u043e\u0447\u0435\u043d\u044c \u0442\u0435\u0440\u043f\u0435\u043b\u0438\u0432\u043e \u0436\u0434\u0430\u0442\u044c\u00a0\u043f\u043e\u043b\u043d\u043e\u0433\u043e\u00a0\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<h3>\u0412\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u0432 ALD Pro \u043c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441 MS AD<\/h3>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0440\u0435\u043b\u0438\u0437\u0430 2.0.0,\u00a0\u0432 ALD\u00a0Pro\u00a0\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043a\u0440\u044b\u043b\u00a0\u0443\u043a\u0430\u0437\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u00a0\u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u0438. \u041c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u043e\u043c\u0435\u043d\u0430 \u043f\u0440\u0438 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u0438 \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430 \u043e\u043d \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043d\u0430 \u0433\u043b\u0430\u0432\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435:\u00a0\u00a0<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b16\/0a9\/725\/b160a972591f284bf11023e240d36054.png\" width=\"1600\" height=\"488\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b16\/0a9\/725\/b160a972591f284bf11023e240d36054.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b16\/0a9\/725\/b160a972591f284bf11023e240d36054.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u043e\u0434\u0445\u043e\u0434\u00a0\u043a\u00a0\u0441\u043e\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432\u00a0\u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0439 \u0441 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c, \u043d\u043e \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0438\u043c\u0435\u043d\u043d\u043e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0441\u043e \u0441\u0442\u043e\u0440\u043e\u043d\u044b MS AD, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u00a0\u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0439\u00a0\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043d\u0430 \u0432\u0441\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0432\u0443\u0445 \u0434\u043e\u043c\u0435\u043d\u043e\u0432.\u00a0\u00a0<\/p>\n<p>\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043a \u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0434\u0443\u043b\u044c \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u0438 \u0432 \u043e\u0431\u0435 \u0441\u0442\u043e\u0440\u043e\u043d\u044b, \u043d\u043e \u0435\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0445\u043e\u0442\u0438\u0442\u0435 \u043e\u0441\u043b\u0430\u0431\u043b\u044f\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f MS AD, \u0442\u043e \u044d\u0442\u0443\u00a0\u0444\u0443\u043d\u043a\u0446\u0438\u044e\u00a0\u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u044c\u00a0\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432\u00a0\u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 ALD\u00a0Pro.\u00a0<\/p>\n<p>\u042d\u0442\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u043e, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0441\u043b\u0443\u0436\u0431\u0435 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0435\u0441\u0442\u044c \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 MS AD, \u0434\u0430 \u0435\u0449\u0435 \u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044e \u043f\u0430\u0440\u043e\u043b\u0435\u0439. \u0414\u0430\u043d\u043d\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u043e\u0439\u0434\u0435\u0442 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043c\u043e\u0433\u0443\u0442 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438\u0437 MS AD \u0432 ALD Pro, \u0445\u043e\u0442\u044f \u0438 \u043d\u0435 \u0432 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435, \u0430 \u0432 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u043c \u0436\u0443\u0440\u043d\u0430\u043b\u0435 \u0441\u043e\u0431\u044b\u0442\u0438\u0439 (\u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c\u00a0\u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u00a0debug).<\/p>\n<h3>Pragmatic Tools Migrator<\/h3>\n<p>\u0420\u0435\u0448\u0435\u043d\u0438\u0435\u00a0Pragmatic\u00a0Tools\u00a0Migrator\u00a0\u043e\u0442 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Pragmatic Tools, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u0443\u044e\u0449\u0435\u0439\u0441\u044f \u043d\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 MS AD \u0432 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u043b\u0443\u0436\u0431\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 (\u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e ALD\u00a0Pro),\u00a0\u043f\u043e\u043a\u0440\u044b\u0432\u0430\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e \u043c\u043e\u0434\u0443\u043b\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u044f\u0434 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u043d\u043e\u0441\u0438\u0442\u044c \u0440\u0435\u0448\u0430\u044e\u0449\u0438\u0439 \u0445\u0430\u0440\u0430\u043a\u0442\u0435\u0440 \u0432 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438:\u00a0<\/p>\n<ul>\n<li>\n<p>\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0430\u0440\u043e\u043b\u0435\u0439 \u0441 MS AD \u0432 ALD Pro (\u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043e\u0441\u043b\u0430\u0431\u043b\u044f\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 MS AD);<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0430\u0432\u0438\u043b\u00a0\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438\u00a0(\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u043e \u043f\u043e\u0434\u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0438\u044f\u043c);\u00a0<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438\u00a0\u043f\u0440\u0430\u0432\u0438\u043b\u00a0\u0442\u0440\u0430\u043d\u0441\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 (\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f) \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432\u00a0\u043f\u0440\u0438 \u0438\u0445 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438;\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0443\u0447\u043d\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0438\u00a0\u043c\u043d\u043e\u0433\u043e\u0435\u00a0\u0434\u0440\u0443\u0433\u043e\u0435.\u00a0<\/p>\n<\/li>\n<\/ul>\n<p>\u041d\u043e\u00a0\u0441\u0430\u043c\u043e\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0435, \u0447\u0442\u043e \u044f \u0432\u044b\u043d\u0435\u0441 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u00a0\u2014 \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0438\u043c\u0435\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u00a0\u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u00a0\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438,\u00a0\u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0443\u044e\u00a0\u043e\u0442\u0447\u0435\u0442\u043d\u043e\u0441\u0442\u044c,\u00a0\u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043e\u0442\u043b\u0430\u0434\u043a\u0443 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \u0432 \u043f\u0435\u0440\u0438\u043e\u0434 \u0433\u0438\u0431\u0440\u0438\u0434\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0434\u043b\u0438\u0442\u044c\u0441\u044f\u00a0\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u043e \u0434\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0434\u043e \u0433\u043e\u0434\u0430 \u0438 \u0431\u043e\u043b\u0435\u0435).<\/p>\n<h3>\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 K2Tex<\/h3>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u2014 \u044d\u0442\u043e \u043d\u0430\u0448\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432 \u041a2\u0422\u0435\u0445, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b\u00a0\u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0432 \u0442\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430\u00a0\u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a \u043f\u0440\u0435\u0434\u044a\u044f\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0435\u00a0\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f,\u00a0\u043d\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u00a0\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0440\u0430\u043d\u0435\u0435\u00a0\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0443 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u0437 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0441\u043b\u0443\u0436\u0431\u0430\u00a0\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430\u00a0\u043d\u0430 \u0431\u0430\u0437\u0435\u00a0Novell\u00a0eDirectory,\u00a0\u0434\u043b\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u043d\u0430 \u0440\u044b\u043d\u043a\u0435 \u043d\u0435\u0442 \u0433\u043e\u0442\u043e\u0432\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438\u00a0\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 (\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438) \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0434\u043e\u043c\u0435\u043d\u0430\u00a0\u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438.\u00a0<\/p>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u043e\u0447\u0435\u043d\u044c \u0447\u0430\u0441\u0442\u043e \u0441\u0442\u0430\u043b\u043a\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u043d\u044b\u043c\u0438 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0430\u043c\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u043b\u0438\u0441\u044c \u0441 \u043f\u0440\u043e\u0431\u0435\u043b\u0430\u043c\u0438 \u0438\u043b\u0438 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043b\u0438 \u0441\u0438\u043c\u0432\u043e\u043b\u044b, \u043d\u0435\u0434\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u0434\u043b\u044f \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 ALD\u00a0Pro. \u041a\u0430\u043a \u0440\u0430\u0437 \u043f\u043e\u0434 \u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u043b\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c\u0438 \u0442\u0440\u0430\u043d\u0441\u043b\u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438.\u00a0<\/p>\n<p>\u0412 \u043d\u0430\u0448\u0438\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u0430\u0445 \u043d\u0435\u0442 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430, \u043d\u0435\u0442 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0430\u0440\u043e\u043b\u0435\u0439, \u043d\u043e \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0435 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0435\u0441\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430.\u00a0<\/p>\n<p>\u041d\u0430\u0448\u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0438 \u043c\u0435\u0442\u043e\u0434\u0438\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442\u044c \u0440\u0435\u0441\u0443\u0440\u0441\u044b \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430 \u0438 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u043e\u0442\u0435\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e \u0441\u043b\u0443\u0436\u0431\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430.\u00a0<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\"><strong>\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438<\/strong><\/p>\n<\/td>\n<td>\n<p align=\"left\"><strong>\u041a\u043e\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\">\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 MS AD<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0440\u0430\u0437\u043e\u0432\u043e\u0439 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441 MS AD<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\">\u041c\u043e\u0434\u0443\u043b\u044c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 ALD Pro<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438 \u043f\u0440\u043e\u0441\u0442\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\">Pragmatic Tools Migrator<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0420\u0435\u0448\u0435\u043d\u0438\u0435, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0434\u043b\u044f \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0439 \u0441 \u0441\u043e\u0442\u043d\u044f\u043c\u0438 \u0442\u044b\u0441\u044f\u0447 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td data-colwidth=\"351\" width=\"351\">\n<p align=\"left\">\u0421\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0438 K2Tex<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0414\u043b\u044f \u043d\u0435\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432, \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0441\u0440\u0435\u0434\u043d\u0435\u0439 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u043d\u043e \u0441\u043e \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432.\u00a0<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<h2>\u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043c\u0435\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u041e\u0421 Astra Linux<\/h2>\n<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u044d\u0442\u0430\u043f\u043e\u043c \u043f\u043e\u0441\u043b\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u0441\u043b\u0443\u0436\u0431\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043c\u0435\u0441\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u041e\u0421\u00a0Astra\u00a0Linux. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 ALD\u00a0Pro\u00a0\u0438\u043c\u0435\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041e\u0421 \u043f\u043e \u0441\u0435\u0442\u0438. \u0412 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 (\u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 2.5.0) \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u043e \u0441\u0435\u0442\u0438 \u041e\u0421\u00a0Astra\u00a0Linux\u00a01.7, \u043d\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u0443\u0436\u0435 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0438\u0440\u0443\u044e\u0442 \u0432\u0435\u0440\u0441\u0438\u044e 1.8. \u041a\u0430\u043a \u0440\u0430\u0437 \u0437\u0434\u0435\u0441\u044c \u0445\u043e\u0447\u0435\u0442\u0441\u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u0430\u0442\u044c \u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f\u00a0\u0432\u0435\u0440\u0441\u0438\u0438 1.8 \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u043e\u043c\u00a0Debian:\u00a0<\/p>\n<ul>\n<li>\n<p>\u0420\u0430\u0437\u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u0442\u044c ISO-\u043e\u0431\u0440\u0430\u0437 \u0432\u0435\u0440\u0441\u0438\u0438 1.8.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b\u00a0initrd\u00a0\u0438\u00a0linux\u00a0\u0438\u0437 ISO-\u043e\u0431\u0440\u0430\u0437 \u0432\u0435\u0440\u0441\u0438\u0438 1.8 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041e\u0421 \u043f\u043e \u0441\u0435\u0442\u0438 \u0432 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \/var\/www\/tftp\/. \u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b, \u0442\u0430\u043a \u043a\u0430\u043a \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435 \u0441 \u044d\u0442\u0438\u043c\u0438 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0444\u0430\u0439\u043b\u044b \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041e\u0421\u00a0Astra\u00a0Linux\u00a01.7 (\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: linux_18, 18_initrd.gz).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0421\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 ALD Pro (\u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: Astra18).<\/p>\n<\/li>\n<\/ul>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/518\/030\/26f\/51803026fed4d70a6310bc52c1b1feb7.png\" width=\"1152\" height=\"387\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/518\/030\/26f\/51803026fed4d70a6310bc52c1b1feb7.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/518\/030\/26f\/51803026fed4d70a6310bc52c1b1feb7.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<ul>\n<li>\n<p>\u0412 \u043d\u043e\u0432\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0441\u043a\u0440\u0438\u043f\u0442 Grub \u043a \u0432\u0438\u0434\u0443:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">if loadfont $prefix\/font.pf2 ; then    set gfxmode=800x600    set gfxpayload=keep    insmod efi_gop    insmod efi_uga    insmod video_bochs    insmod video_cirrus    insmod gfxterm    insmod png    terminal_output gfxterm  fi     if background_image \/isolinux\/aldpro.png; then    set color_normal=light-gray\/black    set color_highlight=white\/black  else    set menu_color_normal=cyan\/blue    set menu_color_highlight=white\/blue  fi  # \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Astra Linux Special Edition  menuentry 'Install AstraLinux Operating System' {1      set background_color=black      linux    (http,&lt;IP-\u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041e\u0421 \u043f\u043e \u0441\u0435\u0442\u0438&gt;)\/tftp\/18_linux modprobe.blacklist=evbug debian-installer\/allow_unauthenticated=true auto=true priority=critical debian-installer\/locale=en_US console-keymaps-at\/keymap=ru hostname={HOSTNAME} domain={DOMAIN_REALM} astra-license\/license=true url=http:\/\/&lt;IP-\u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041e\u0421 \u043f\u043e \u0441\u0435\u0442\u0438&gt;\/tftp\/{PROFILE_UNIQ_NAME}\/{PRESEED_FILE_NAME} interface=auto netcfg\/dhcp_timeout=60    initrd   (http,&lt;IP-\u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041e\u0421 \u043f\u043e \u0441\u0435\u0442\u0438&gt;)\/tftp\/18_initrd.gz  } <\/code><\/pre>\n<ul>\n<li>\n<p>\u0412 \u043d\u043e\u0432\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u0441\u043a\u0440\u0438\u043f\u0442 Boot-\u043c\u0435\u043d\u044e \u043a \u0432\u0438\u0434\u0443:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\">UI vesamenu.c32  # 0 - \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438. \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0430\u0447\u043d\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443  PROMPT 0  # \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u0431\u043e\u0440 \u043c\u0435\u043d\u044e \u043f\u043e \u0442\u0430\u0439\u043c\u0435\u0440\u0443. \u0421\u0435\u043a\u0443\u043d\u0434\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u043d\u0430 10 \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f  TIMEOUT 100  # \u0412\u044b\u0431\u043e\u0440 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u043e \u0441\u0435\u0442\u0438  DEFAULT pxeinstall  menu background back.jpg  menu title User Management Portal Boot Menu  # \u041b\u043e\u043a\u0430\u043b\u044c\u043d\u0430\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0441 \u0434\u0438\u0441\u043a\u0430  LABEL bootlocal      menu label Boot from first HDD      kernel chain.c32      append hd0 0  TEXT HELP  Normal boot from HDD  ENDTEXT  # \u0417\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0438\u0437 \u0441\u0435\u0442\u0438  LABEL pxeinstall      menu label PXE operation system install      kernel linux     append initrd=18_initrd.gz vga=788 auto=true priority=critical debian-installer\/locale=ru_RU console-keymaps-at\/keymap=ru hostname={HOSTNAME} domain={DOMAIN_REALM} astra-license\/license=true url=http:\/\/&lt;IP-\u0430\u0434\u0440\u0435\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u041e\u0421 \u043f\u043e \u0441\u0435\u0442\u0438&gt;\/tftp\/{PROFILE_UNIQ_NAME}\/{PRESEED_FILE_NAME} interface=auto netcfg\/dhcp_timeout=60  TEXT HELP  Install AstraLinux Operating System  ENDTEXT<\/code><\/pre>\n<ul>\n<li>\n<p>\u0412 \u043d\u043e\u0432\u043e\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432 preseed \u0444\u0430\u0439\u043b\u0435, \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u043a \u0432\u0438\u0434\u0443:<\/p>\n<\/li>\n<\/ul>\n<pre><code class=\"bash\"># \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0432\u044b\u0431\u043e\u0440 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 d-i netcfg\/choose_interface select enp4s0<\/code><\/pre>\n<ul>\n<li>\n<p>ALD\u00a0Pro\u00a0\u043d\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u043b\u0430\u0433\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0440\u0430\u0437\u043d\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0438\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 \u0438 \u0434\u043b\u044f \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\u00a0\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0439\u00a0\u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043d\u0443\u0436\u043d\u043e \u0432 \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445\u00a0PostgreSQL \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0441\u0442\u0440\u043e\u043a\u0438 \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 \u041e\u0421 \u00a0\u043d\u0430\u00a0\u0441\u0435\u0440\u0432\u0435\u0440\u0435 PXE, \u0434\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f:<\/p>\n<\/li>\n<\/ul>\n<p>\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0431\u043e\u043b\u043e\u0447\u043a\u0443 \u0438\u0437-\u043f\u043e\u0434 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u00a0postgres:\u00a0<\/p>\n<pre><code class=\"bash\">sudo \u2013i \u2013u postgres\u00a0<\/code><\/pre>\n<p>\u0412\u0435\u0440\u0441\u0438\u0438 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c \u0445\u0440\u0430\u043d\u044f\u0442\u0441\u044f \u0432\u00a0\u0442\u0430\u0431\u043b\u0438\u0446\u0435 installs_os.\u00a0\u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430\u00a0 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u041e\u0421 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:\u00a0<\/p>\n<pre><code class=\"bash\">psql -d osinstall -c\"\u00a0select*\u00a0from installs_os;\u201d\u00a0<\/code><\/pre>\n<p>\u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0442\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u0432\u0435\u0440\u0441\u0438\u0435\u0439 Astra_1_7. \u0427\u0442\u043e\u0431\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0441 1_8,\u00a0 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">psql\u00a0-d\u00a0osinstall\u00a0-c \"INSERT INTO\u00a0 installs_os\u00a0 VALUES ('Astra_1_8', '\/astra18\/bin\/1', '64', '\/opt\/rbta\/aldpro\/os\/storage\/astra17\/bin\/1\/', '1', '\u0413\u043e\u043b\u043e\u0432\u043d\u043e\u0439 \u043e\u0444\u0438\u0441');\"<\/code><\/pre>\n<p>\u041d\u043e \u043d\u0430 \u044d\u0442\u043e\u043c \u0435\u0449\u0435 \u043d\u0435 \u0432\u0441\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u043d\u0443\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u043e\u0439 \u041e\u0421 \u0432 \u043d\u0443\u0436\u043d\u043e\u043c \u043d\u0430\u043c \u043f\u0440\u043e\u0444\u0438\u043b\u0435. \u0414\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430\u00a0 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u0435\u0439\u00a0 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:<\/p>\n<pre><code class=\"bash\">psql -d osinstall -c \"select*\u00a0from installs_osprofile;\u201d\u00a0<\/code><\/pre>\n<p>\u0414\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u0443:\u00a0<\/p>\n<pre><code class=\"bash\">psql\u00a0-d\u00a0osinstall\u00a0-c \" UPDATE\u00a0installs_osprofile\u00a0SET\u00a0os_id\u00a0= 'Astra_1_8'\u00a0 WHERE\u00a0os_id\u00a0= 'Astra_1_7';\u201d\u00a0<\/code><\/pre>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u00a0Astra\u00a0Linux\u00a01.8 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c ALD\u00a0Pro, \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u0443\u043a\u0430\u0437\u0430\u043d\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b:<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b16\/4da\/3ed\/b164da3ed5e35f55b0ef78079b4f2f64.png\" width=\"1024\" height=\"260\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/b16\/4da\/3ed\/b164da3ed5e35f55b0ef78079b4f2f64.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/b16\/4da\/3ed\/b164da3ed5e35f55b0ef78079b4f2f64.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<h2>\u0413\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f<\/h2>\n<p>\u0413\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u0435 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 (GPO) \u2014 \u043e\u0434\u0438\u043d \u0438\u0437 \u0441\u0430\u043c\u044b\u0445 \u0432\u0430\u0436\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043e\u0439. \u0412 ALD\u00a0Pro\u00a0\u044d\u0442\u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d \u043d\u0430 \u0431\u0430\u0437\u0435\u00a0Salt, \u043d\u043e \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u044d\u0432\u043e\u043b\u044e\u0446\u0438\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043b. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c <strong>\u00ab<\/strong>\u043c\u0430\u0441\u0442\u0435\u0440-\u043c\u0438\u043d\u044c\u043e\u043d<strong>\u00bb<\/strong>. \u041f\u043e\u0437\u0436\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0430\u0432\u0442\u043e\u043d\u043e\u043c\u043d\u0430\u044f \u0441\u043b\u0443\u0436\u0431\u0430\u00a0aldpro-salt-minion, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0447\u0438\u043c \u0441\u0442\u0430\u043d\u0446\u0438\u044f\u043c \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0447\u0435\u0440\u0435\u0437 LDAP, \u0447\u0442\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442\u00a0\u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u00a0\u0438 \u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u044c.\u00a0<\/p>\n<p>\u0413\u0438\u0431\u043a\u043e\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b GPO \u0432 ALD\u00a0Pro\u00a0\u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u0442\u044c\u00a0\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435\u00a0\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043f\u043e\u0434 \u0441\u043f\u0435\u0446\u0438\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u041f\u041e. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u0442\u0430\u043a\u0436\u0435 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0441\u043b\u043e\u0436\u043d\u0443\u044e \u043b\u043e\u0433\u0438\u043a\u0443, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u044b\u0445\u043e\u0434\u0438\u0442 \u0437\u0430 \u0440\u0430\u043c\u043a\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u043b\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0433\u0440\u0443\u043f\u043f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432.\u00a0<\/p>\n<p><strong>\u0428\u0430\u0431\u043b\u043e\u043d \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439:<\/strong><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/831\/a2a\/eeb\/831a2aeeba3874a44945253cd60dce34.png\" width=\"1502\" height=\"540\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/831\/a2a\/eeb\/831a2aeeba3874a44945253cd60dce34.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/831\/a2a\/eeb\/831a2aeeba3874a44945253cd60dce34.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<pre><code class=\"bash\">{% set id = '&lt;\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0413\u041f&gt;' %}  {% set my_user = salt['pillar.get'](\"user\") %}  {% set homedir = salt['user.info'](my_user).home %}  {% set apply_to_user_group_ids = (salt['pillar.get']('aldpro-users:'+ my_user + id)).split(' ') %}     {% if apply_to_user_group_ids %}  {% set groups_user = (salt['cmd.run']('id -G ' + my_user)).split(' ') %}  {% for group_user in groups_user %}  {% if group_user in apply_to_user_group_ids %}    &lt; \u0422\u0435\u043b\u043e \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438&gt;    {% break %}  {% endif %}  {% endfor %}  {% endif %} <\/code><\/pre>\n<p><strong>\u0428\u0430\u0431\u043b\u043e\u043d\u00a0 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432:<\/strong><\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/040\/a56\/450\/040a56450550da5138cacfccd4734469.png\" width=\"1413\" height=\"538\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/040\/a56\/450\/040a56450550da5138cacfccd4734469.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/040\/a56\/450\/040a56450550da5138cacfccd4734469.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<pre><code class=\"bash\">{% set id = '&lt;\u0423\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440 \u0413\u041f&gt;' %}  {% set my_host = salt['grains.get'](\"nodename\") %}  {% set domain = salt['grains.get'](\"domain\") %}  {% if salt['pillar.get']('aldpro-hosts:'+ my_host) is defined %}  {% set apply_to_pc_group_names = (salt['pillar.get']('aldpro-hosts:'+ my_host +':' + id)).split(' ')  %}    {% if apply_to_pc_group_names %}  {% for group_pc in apply_to_pc_group_names %}  {% if (salt['cmd.run'](\"getent netgroup \" + group_pc + \" \" + node + \" \" + \"-\" + \" \" + ))[-1] == '1' %}    &lt; \u0422\u0435\u043b\u043e \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u043e\u0439 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438&gt;    {% break %}  {% endif %}  {% endfor %}  {% endif %}<\/code><\/pre>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u043f\u0440\u0438\u043c\u0435\u0440\u043e\u0432\u00a0\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u043e\u0433\u043e\u00a0\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u00a0 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432\u00a0\u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430\u00a0pam_mount\u00a0\u043f\u0440\u0438 \u0432\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u00a0\u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443. \u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u00a0\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\u00a0autofs, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432 \u0434\u043e\u043c\u0435\u043d\u0435\u00a0FreeIPA, \u0438\u043c\u0435\u044e\u0442 \u0446\u0435\u043b\u044b\u0439 \u0440\u044f\u0434 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432, \u0441\u043f\u043e\u0441\u043e\u0431 \u0447\u0435\u0440\u0435\u0437\u00a0pam_mount\u00a0\u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0432\u0441\u0435 \u0436\u0435 \u0432\u043e\u0441\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d \u2014 \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u0441 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430.<\/p>\n<p>\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f\u00a0Salt,\u00a0\u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043b\u0435\u0436\u0438\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u0435\u00a0\u0433\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u00a0ALD\u00a0Pro,\u00a0\u043c\u043e\u0436\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u043c\u0438 \u0444\u0430\u0439\u043b\u0430\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a\u00a0pam_mount.conf.xml, \u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f CIFS\/SMB-\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 LDAP. \u041d\u0438\u0436\u0435 \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d \u043f\u0440\u0438\u043c\u0435\u0440 \u0444\u0440\u0430\u0433\u043c\u0435\u043d\u0442\u0430\u00a0SLS-\u0444\u0430\u0439\u043b\u0430 \u0434\u043b\u044f \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f.\u00a0<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u0414\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">mountpoint<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0426\u0435\u043b\u0435\u0432\u0430\u044f \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044f, \u043a\u0443\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u0441\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u0441\u0435\u0442\u0435\u0432\u0430\u044f \u043f\u0430\u043f\u043a\u0430 \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u043c \u0410\u0420\u041c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: \/home\/%(USER)\/Desktops\/Desktop1\/<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">path<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u043f\u0430\u043f\u043a\u0438 \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/p>\n<\/td>\n<td>\n<p align=\"left\">server<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0412 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 FQDN \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">\u041b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u043d\u0430 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e<\/p>\n<\/td>\n<td>\n<p align=\"left\">share_local_permissions<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0440\u0430\u0432\u0430 \u043d\u0430 \u043f\u0440\u0438\u043c\u043e\u043d\u0442\u0438\u0440\u0443\u0435\u043c\u0443\u044e \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u044e \u043d\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u0435, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440: 0777<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\"># \u041f\u0440\u0438\u043c\u0435\u0440 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f pam_mount.conf.xml \u0447\u0435\u0440\u0435\u0437 Salt (\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0447\u0435\u0440\u0435\u0437 ALD Pro GPO)  # \u0417\u0430\u0434\u0430\u0435\u043c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 (\u043f\u0443\u0442\u044c \u043a \u043a\u043e\u043d\u0444\u0438\u0433\u0443, \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u0448\u0430\u0440\u0430\u0445 - \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u044c \u0438\u0437 Pillar\/LDAP)  {% set config_f = '\/etc\/security\/pam_mount.conf.xml' %}  {% set get_vars = [      {'server': 'fileserver.domain.local', 'path': 'share1', 'mountpoint': '\/mnt\/share1', 'share_local_permissions': '0770'},      {'server': 'otherserver.domain.local', 'path': 'docs', 'mountpoint': '~\/docs', 'share_local_permissions': '0700'}    ]  %}    # \u0423\u0431\u0435\u0436\u0434\u0430\u0435\u043c\u0441\u044f, \u0447\u0442\u043e \u0431\u0430\u0437\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438 \u0438\u043c\u0435\u0435\u0442 \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u044b\u0439 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043e\u043a  pam_mount_conf_xml_header:    file.managed:      - name: {{ config_f }}      - contents: |          &lt;?xml version=\"1.0\" encoding=\"utf-8\" ?&gt;          &lt;!DOCTYPE pam_mount SYSTEM \"pam_mount.conf.xml.dtd\"&gt;          &lt;pam_mount&gt;              &lt;debug enable=\"0\" \/&gt;              &lt;cifsmount&gt;mount.cifs \/\/%(SERVER)\/%(VOLUME) %(MNTPT) -o %(OPTIONS) &lt;\/cifsmount&gt;    # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u043b\u043e\u043a\u0438 &lt;volume&gt; \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0448\u0430\u0440\u044b  {% for item in get_vars %}  {% set server_s = item.get('server') %}\\  {% set path_s = item.get('path') %}\\  {% set mountpoint_s = item.get('mountpoint') %}\\  {% set share_local_permissions_s = item.get('share_local_permissions') %}  pam_mount_conf_xml_addvol_{{ path_s }}:    file.append:      - name: {{ config_f }}      - text: |          &lt;volume                  fstype=\"cifs\"                  server=\"{{ server_s }}\"                  path=\"{{ path_s }}\"                  mountpoint=\"{{ mountpoint_s }}\"                  options=\"user=%(USER),cruid=%(USER),sec=krb5i,file_mode={{ share_local_permissions_s }},dir_mode={{ share_local_permissions_s }}\"              \/&gt;  {% endfor %}    # \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u044e\u0449\u0438\u0435 \u0442\u0435\u0433\u0438  pam_mount_conf_xml_footer:    file.append:      - name: {{ config_f }}      - text: |          &lt;luserconf name=\".pam_mount.conf.xml\" \/&gt;              &lt;mntoptions allow=\"nosuid,nodev,loop,encryption,sec=krb5i\" \/&gt;              &lt;logout wait=\"0\" hup=\"0\" term=\"0\" kill=\"0\" \/&gt;              &lt;mkmountpoint enable=\"1\" remove=\"true\" \/&gt;          &lt;\/pam_mount&gt; <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u00a0\u041f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0435\u00a0\u043f\u0440\u0438\u043c\u0435\u0440\u044b\u00a0\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u0443\u044e\u0442 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438\u00a0Salt. \u0412 \u0440\u0430\u043c\u043a\u0430\u0445 ALD\u00a0Pro\u00a0\u0442\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u044b \u0447\u0435\u0440\u0435\u0437\u00a0\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435\u00a0\u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0438\u0442\u0438\u043a, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432.  <\/p>\n<h2>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c: PKI Proxy \u0438 \u0437\u0430\u0449\u0438\u0442\u0430 \u043a\u043b\u044e\u0447\u0435\u0439<\/h2>\n<p>PKI\u00a0Proxy\u00a0\u2014 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u043c\u043e\u0434\u0443\u043b\u044c ALD\u00a0Pro, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u0443\u0441\u043a \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b ALD\u00a0Pro. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u00a0\u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0434\u043b\u044f\u00a0\u043e\u0442\u043a\u0430\u0437\u043e\u0443\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438.\u00a0\u0414\u043e\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0447\u0435\u0440\u0435\u0437 LDAP, \u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u043e\u043c\u0435\u043d\u0430 \u0441 \u0440\u043e\u043b\u044c\u044e PKI\u00a0Proxy\u00a0\u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441, \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0435\u0433\u043e \u0438 \u0442\u0430\u043a\u0436\u0435 \u0447\u0435\u0440\u0435\u0437 LDAP \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0443 \u0433\u043e\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442. \u0422\u0430\u043a\u043e\u0439 \u043f\u043e\u0434\u0445\u043e\u0434 \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u043d\u0430 \u0432\u0441\u0435\u0445 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0445 \u0434\u043e\u043c\u0435\u043d\u0430, \u0447\u0442\u043e \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b.\u00a0<\/p>\n<p>\u041f\u0440\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0438 \u0440\u0435\u043f\u043b\u0438\u043a \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432 \u0434\u043e\u043c\u0435\u043d\u0430 \u043c\u043e\u0436\u043d\u043e \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u0443\u044e \u0440\u043e\u043b\u044c:\u00a0<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f84\/bae\/f95\/f84baef95418440b04c53f67c7650c81.png\" width=\"713\" height=\"451\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/f84\/bae\/f95\/f84baef95418440b04c53f67c7650c81.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/f84\/bae\/f95\/f84baef95418440b04c53f67c7650c81.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u0412\u0435\u043d\u0434\u043e\u0440 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043c\u043e\u0434\u0443\u043b\u044c. \u041f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u00a0\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0423\u0434\u043e\u0441\u0442\u043e\u0432\u0435\u0440\u044f\u044e\u0449\u0438\u043c\u0438 \u0426\u0435\u043d\u0442\u0440\u0430\u043c\u0438, \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u043c\u0438, \u0442\u0430\u043a\u0438\u043c\u0438 \u043a\u0430\u043a\u00a0CryptoPro\u00a0\u0423\u0426 \u0438\u00a0SafeTech\u00a0CA. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u044b, \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u043c \u043a\u0440\u0438\u043f\u0442\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0430\u043c (\u0413\u041e\u0421\u0422), \u0447\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0439 \u0440\u0435\u0433\u0443\u043b\u044f\u0442\u043e\u0440\u043e\u0432 \u0438 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438.\u00a0<\/p>\n<p>\u0412\u043e\u0442 \u043f\u0440\u043e\u0441\u0442\u043e\u0439 \u043f\u0440\u0438\u043c\u0435\u0440 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 PKI\u00a0Proxy: \u0435\u0441\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u0434\u043e\u043c\u0435\u043d\u0430 \u0441 \u0440\u043e\u043b\u044c\u044e PKI Proxy \u041a\u0414-1, \u0435\u0433\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430 \u041a\u0414-2 \u0431\u0435\u0437 \u0440\u043e\u043b\u0438 PKI Proxy, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0435\u0441\u0442\u044c \u0432\u043d\u043e\u0432\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 \u0432 \u0434\u043e\u043c\u0435\u043d \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440 \u041a\u0414-3. \u041d\u0430 \u0441\u0435\u0442\u0435\u0432\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435 \u041a\u0414-3 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u041a\u0414-1, \u043d\u043e \u0438\u043c\u0435\u0435\u0442 \u043a \u041a\u0414-2.<\/p>\n<figure class=\"full-width\"><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f0\/edf\/49e\/5f0edf49edcdb6e5a4a94d1488e7b21a.png\" width=\"1600\" height=\"1149\" sizes=\"auto, (max-width: 780px) 100vw, 50vw\" srcset=\"https:\/\/habrastorage.org\/r\/w780\/getpro\/habr\/upload_files\/5f0\/edf\/49e\/5f0edf49edcdb6e5a4a94d1488e7b21a.png 780w,&#10;       https:\/\/habrastorage.org\/r\/w1560\/getpro\/habr\/upload_files\/5f0\/edf\/49e\/5f0edf49edcdb6e5a4a94d1488e7b21a.png 781w\" loading=\"lazy\" decode=\"async\"\/><\/figure>\n<p>\u041f\u0440\u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u0432 \u0434\u043e\u043c\u0435\u043d \u041a\u0414-3 \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0435:<\/p>\n<ol>\n<li>\n<p>\u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u041a\u0414-3 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u041a\u0414-3 \u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \u043d\u0430 \u041a\u0414-2.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041a\u0414-2 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u041a\u0414-1.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0414-3 \u043e\u0436\u0438\u0434\u0430\u0435\u0442 \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 5 \u043c\u0438\u043d\u0443\u0442 \u043f\u043e\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u043c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u0435 \u0441\u0432\u043e\u0435\u0439 \u0423\u0417.<\/p>\n<\/li>\n<li>\n<p>PKI Proxy \u043d\u0430 \u041a\u0414-1 \u0432\u0438\u0434\u0438\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430, \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0435\u0433\u043e, \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u0438 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0432 \u0423\u0417 \u041a\u0414-3 \u0432 \u0441\u0432\u043e\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041a\u0414-1 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u041a\u0414-2.<\/p>\n<\/li>\n<li>\n<p>\u041a\u0414-3 \u0432\u0438\u0434\u0438\u0442 \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442 \u043d\u0430 \u041a\u0414-2, \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043d\u0435 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u044f\u0441\u044c \u0441 \u041a\u0414-1.<\/p>\n<\/li>\n<li>\n<p>\u0415\u0441\u043b\u0438 \u041a\u0414-3 \u0447\u0435\u0440\u0435\u0437 5 \u043c\u0438\u043d\u0443\u0442 \u043d\u0435 \u0443\u0432\u0438\u0434\u0438\u0442 \u0441\u0432\u043e\u0439 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442, \u043e\u043d \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0435\u0449\u0435 6 \u043f\u043e\u043f\u044b\u0442\u043e\u043a \u0441 \u0438\u043d\u0442\u0435\u0440\u0432\u0430\u043b\u0430\u043c\u0438 \u0432 5 \u043c\u0438\u043d\u0443\u0442. \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043e\u0431\u0443\u0441\u043b\u043e\u0432\u043b\u0435\u043d\u043e \u0442\u0435\u043c, \u0447\u0442\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0437\u0430\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0435\u0441\u043b\u0438 \u0432 LDAP \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0432\u043d\u043e\u0441\u044f\u0442\u0441\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u043b\u0438 PKI Proxy \u0432 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0434\u043e\u043c\u0435\u043d\u0430 \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d \u043e\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u0442 \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442.<\/p>\n<\/li>\n<li>\n<p>\u041f\u043e\u0441\u043b\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430 \u041a\u0414-3 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0438 \u043d\u0430 \u043d\u0435\u043c \u0441\u043e\u0437\u0434\u0430\u0435\u0442\u0441\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430.<\/p>\n<\/li>\n<\/ol>\n<h2>\u042d\u0432\u043e\u043b\u044e\u0446\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 ALD Pro<\/h2>\n<p>\u041f\u0440\u043e\u0434\u0443\u043a\u0442 ALD\u00a0Pro\u00a0\u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u041f\u0435\u0440\u0438\u043e\u0434\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u043f\u0440\u043e\u0441\u0442\u044b\u043c (\u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u043e\u0432\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439 \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u043d\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435).\u00a0<\/p>\n<p>\u0421 2.4.0 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f ALD\u00a0Pro\u00a0\u0441\u0442\u0430\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u043f\u043e \u043a\u043d\u043e\u043f\u043a\u0435 \u0432 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435.\u00a0\u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u043d\u0430\u0437\u043d\u0430\u0447\u0430\u0435\u0442 \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f ALD\u00a0Pro,\u00a0\u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0441\u0430\u043c\u0438 \u0441\u043a\u0430\u0447\u0438\u0432\u0430\u044e\u0442 \u043d\u0443\u0436\u043d\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0438\u0437 LDAP \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f ALD\u00a0Pro\u00a0\u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0441\u043e\u0432\u0435\u0440\u0448\u0435\u043d\u0441\u0442\u0432\u0443\u0435\u0442\u0441\u044f \u0432\u0435\u043d\u0434\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0445:\u00a0<\/p>\n<ul>\n<li>\n<p>\u0414\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.2.0: \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u043e\u0441\u044c \u043e\u0434\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u0430 \u0432\u0441\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b (\u0441\u0435\u0440\u0432\u0435\u0440\u044b \u0438 \u043a\u043b\u0438\u0435\u043d\u0442\u044b), \u0447\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0421 \u0432\u0435\u0440\u0441\u0438\u0438 2.2.0: \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0434\u0435\u043b\u0438\u043b\u0438. \u041a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b (\u043f\u0435\u0440\u0432\u044b\u0439 \u041a\u0414, \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b) \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u043b\u0438\u0441\u044c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0447\u0435\u0440\u0435\u0437 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u0443\u044e \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u0443\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443.\u00a0<\/p>\n<\/li>\n<\/ul>\n<ul>\n<li>\n<p>\u0421 \u0432\u0435\u0440\u0441\u0438\u0438 2.4.0: \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u041a\u0414 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0431\u043e\u0440\u043e\u043c \u043a\u043e\u043c\u0430\u043d\u0434 \u043d\u0430 \u043d\u0435\u043c \u0441\u0430\u043c\u043e\u043c, \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0447\u0435\u0440\u0435\u0437 \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 (\u043d\u0430\u0436\u0430\u0442\u0438\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0438),\u00a0\u0430 \u043a\u043b\u0438\u0435\u043d\u0442\u044b \u0442\u0435\u043f\u0435\u0440\u044c\u00a0\u043f\u0435\u0440\u0435\u0445\u043e\u0434\u044f\u0442 \u043d\u0430 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e\u00a0\u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e\u00a0\u0447\u0435\u0440\u0435\u0437\u00a0\u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0443\u00a0\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f ALD\u00a0Pro, \u0441\u0447\u0438\u0442\u044b\u0432\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u044b \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u0438\u0437 LDAP-\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430. \u042d\u0442\u043e \u0441\u043d\u0438\u043c\u0430\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c \u043e\u0442 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430\u00a0Salt\u00a0\u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u043a\u043b\u0438\u0435\u043d\u0442\u0430\u043c \u0438 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438 \u0433\u0435\u043e\u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0435\u0442\u044f\u0445.\u00a0<\/p>\n<\/li>\n<\/ul>\n<p>\u0422\u0430\u043a\u0436\u0435 \u043c\u044b \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043b\u0438 \u0434\u0432\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421:<\/p>\n<ul>\n<li>\n<p>Bash-\u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439;<\/p>\n<\/li>\n<li>\n<p>Python-\u0441\u043a\u0440\u0438\u043f\u0442 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438:<\/p>\n<ul>\n<li>\n<p>\u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0435\u0439\u00a0\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u041e\u0421;\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u043c \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c (\/opt\/backup\u00a0-&gt; \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440);\u00a0<\/p>\n<\/li>\n<li>\n<p>\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u043e\u0442\u0447\u0451\u0442\u0430 \u043d\u0430 \u043f\u043e\u0447\u0442\u0443;<\/p>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>\u041f\u0435\u0440\u0435\u0434 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421 \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c\u00a0Bash\u00a0 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u0432 \u041e\u0421 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0417\u0430\u0442\u0435\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u041f\u041a, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u0433\u043e\u0442\u043e\u0432\u0438\u0442\u044c \u0437\u0430\u0440\u0430\u043d\u0435\u0435 \u0413\u041f \u0438\u043b\u0438 \u0434\u0430\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0432 \u0437\u0430\u043b\u0438\u0432\u043a\u0443 \u041e\u0421 \u043f\u043e \u0441\u0435\u0442\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439:\u00a0<\/p>\n<pre><code class=\"bash\">#!\/bin\/bash  ####\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b  sudo apt install libdbus-glib-1* fly-notifications -y     cat &lt;&lt;EOL &gt; \/etc\/xdg\/fly-notificationsrc  [Notifications]  ListenForBroadcasts=true  EOL<\/code><\/pre>\n<p>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043d\u0430 BASH \u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441 Astra 1.8.1 UU1 \u043d\u0430\u00a0 1.8.1 UU2 :<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash  #**************************************************************************************************************************  ASTRA_BASE=\"https:\/\/dl.astralinux.ru\/astra\/frozen\/1.8_x86-64\/1.8.1\/uu\/2\/main-repository\/\"  ASTRA_EXT=\"https:\/\/dl.astralinux.ru\/astra\/frozen\/1.8_x86-64\/1.8.1\/uu\/2\/extended-repository\/\"  ASTRA_VERSION_DST=\"1.8.1\"  ASTRA_BUILD_VERSION_DST=\"1.8.1.16\"  ASTRA_VERSION_SRC=`cat \/etc\/astra_version | head -n 1| awk -F\" \" '{print $1}'`  ASTRA_BUILD_VERSION_SRC=`cat \/etc\/astra\/build_version | head -n 1 | awk -F\" \" '{print $1}'`  NOTIFICATION_USER=\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u0412\u0430\u0448 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d \u0434\u043e \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u041e\u0421 Astra Linux \u0447\u0435\u0440\u0435\u0437 10 \u043c\u0438\u043d\u0443\u0442.\\n\u041f\u0440\u043e\u0441\u0438\u043c \u0432\u0430\u0441 \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u041f\u041e \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0435\u0433\u043e \u0434\u0430\u043d\u043d\u044b\u043c\u0438.\"  NOTIFICATION_USER_POST=\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u041d\u0430 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430! \u041f\u0440\u043e\u0441\u044c\u0431\u0430 \u043d\u0435 \u0432\u044b\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0432\u0430\u0448 \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440 \u0438 \u043d\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b!\"  NOTIFICATION_USER_POST_UPGRADE=\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u0412\u0430\u0448\u0430 \u041e\u0421 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443. \u0425\u043e\u0440\u043e\u0448\u0435\u0433\u043e \u0432\u0430\u043c \u0434\u043d\u044f!\"  #**************************************************************************************************************************      if [[ (\"$ASTRA_VERSION_DST\" != \"$ASTRA_VERSION_SRC\") || (\"$ASTRA_BUILD_VERSION_DST\" != \"$ASTRA_BUILD_VERSION_SRC\") ]]; then    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Astra Linux  cat &lt;&lt; EOL &gt; \/etc\/apt\/sources.list  deb $ASTRA_BASE 1.8_x86-64 contrib main non-free non-free-firmware  EOL      #\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u041e\u0421    apt update -y    apt install astra-update -y      #\u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0431 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u041e\u0421.    gdbus emit --system --object-path \/ --signal org.kde.BroadcastNotifications.Notify \"{'appIcon': &lt;'network-disconnect'&gt;, 'body': &lt;'$NOTIFICATION_USER'&gt;, 'summary': &lt;'\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421.'&gt;, 'timeout': &lt;'600000'&gt;}\"    sleep 600      gdbus emit --system --object-path \/ --signal org.kde.BroadcastNotifications.Notify \"{'appIcon': &lt;'network-disconnect'&gt;, 'body': &lt;'$NOTIFICATION_USER_POST'&gt;, 'summary': &lt;'\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421.'&gt;, 'timeout': &lt;'60000'&gt;}\"    #\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421    astra-update -A -r -T      ASTRA_BUILD_VERSION_SRC_POST=`cat \/etc\/astra\/build_version | head -n 1 | awk -F\" \" '{print $1}'`    echo $ASTRA_BUILD_VERSION_SRC_POST    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Astra Linux, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439  cat &lt;&lt; EOL &gt; \/etc\/apt\/sources.list  deb $ASTRA_BASE 1.8_x86-64 contrib main non-free non-free-firmware  deb $ASTRA_EXT 1.8_x86-64 contrib main non-free non-free-firmware  EOL        #\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u041f\u041e    apt update -y    gdbus emit --system --object-path \/ --signal org.kde.BroadcastNotifications.Notify \"{'appIcon': &lt;'network-disconnect'&gt;, 'body': &lt;'$NOTIFICATION_USER_POST_UPGRADE'&gt;, 'summary': &lt;'\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421.'&gt;, 'timeout': &lt;'60000'&gt;}\"        if [[ \"$ASTRA_BUILD_VERSION_DST\" != \"$ASTRA_BUILD_VERSION_SRC_POST\" ]]; then    echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f! \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u043b\u043e\u0433\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430 \u043d\u0430\u043b\u0438\u0447\u0438\u0435 \u043e\u0448\u0438\u0431\u043e\u043a: \/var\/log\/astra_update*.log\"    gdbus emit --system --object-path \/ --signal org.kde.BroadcastNotifications.Notify \"{'appIcon': &lt;'network-disconnect'&gt;, 'body': &lt;'\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421 - \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0443!'&gt;, 'summary': &lt;'\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421.'&gt;, 'timeout': &lt;'60000'&gt;}\"    exit 1    fi    else      echo -e \"\u041e\u0421 \u0443\u0436\u0435 \u0431\u044b\u043b\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430.\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f: $ASTRA_VERSION_SRC\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 build: $ASTRA_BUILD_VERSION_SRC\"    exit 0    fi <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u043d\u0430\u00a0\u044f\u0437\u044b\u043a\u0435\u00a0Python\u00a0\u043f\u0440\u043e\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441\u00a0Astra\u00a01.7.5 \u043d\u0430 1.7.6.\u00a0<\/p>\n<p>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u043f\u0430\u0440\u043e\u043b\u0438 \u043e\u0442 \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e \u044f\u0449\u0438\u043a\u0430, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0438\u0434\u0435\u0442 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439, \u0438 \u043e\u0442 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0441\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u0427\u0442\u043e\u0431\u044b \u0432 \u044f\u0432\u043d\u043e\u043c \u0432\u0438\u0434\u0435 \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u0438 \u0432 \u0441\u043a\u0440\u0438\u043f\u0442\u0435, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0432\u0448\u0438\u0442\u044c \u0438\u0445 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u00a0root\u00a0(\u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442\u00a0Salt), \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043d\u0438\u0436\u0435:\u00a0<\/p>\n<div>\n<div class=\"table\">\n<table>\n<tbody>\n<tr>\n<td>\n<p align=\"left\">\u041f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u0424\u043e\u0440\u043c\u0430\u0442<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">MAIL_USER<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u0447\u0442\u043e\u0432\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\"><a href=\"mailto:user@domain.ald.pro\">user@domain.ald.pro<\/a><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">MAIL_PASS<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u0433\u043e \u0430\u0434\u0440\u0435\u0441\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044f<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2014<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FS_USER<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u0441 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">user<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td>\n<p align=\"left\">FS_PASSWORD<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u041f\u0430\u0440\u043e\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435<\/p>\n<\/td>\n<td>\n<p align=\"left\">\u2014<\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<\/div>\n<p>\u041d\u0430\u0447\u043d\u0435\u043c \u0441 \u0431\u043b\u043e\u043a\u0430 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430\u043c\u0438, \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">import os  import subprocess  import smtplib  import ssl  from email.mime.text import MIMEText  from email.mime.image import MIMEImage  from email.mime.multipart import MIMEMultipart  from email.mime.base import MIMEBase  from email import encoders  import logging    DEFINE_COMMAND_GET_VERSION_ALDPRO_CLIENT = \"dpkg -l | grep -i aldpro-client | head -n 1 | awk -F' ' '{print $3}' | grep 2.4.0\"  DEFINE_LOG_FILE_176 = \"\/var\/log\/upgrade_to_176.log\"  DEFINE_REPO_ASTRA_EXT = \"deb https:\/\/vm-repo-01.domain.ald.pro\/repos\/astra17\/astra-176-ext\/ 1.7_x86-64 main non-free contrib\"  DEFINE_REPO_ASTRA_BASE = \"deb https:\/\/vm-repo-01.domain.ald.pro\/repos\/astra17\/astra-176-base\/ 1.7_x86-64 main non-free contrib\"  DEFINE_REPO_SERVER_VALIDATE = \"vm-repo-01.domain.ald.pro\"  DEFINE_CRED_EMAIL = {      \"user\": os.environ.get('MAIL_USER'),      \"password\": os.environ.get('MAIL_PASS'),      \"smtp_server\": \"mail.domain.ald.pro\",      \"smtp_port\": 465,      \"smtp_ssl\": \"True\"  }  DEFINE_CRED_FS = {      \"user\": os.environ.get('FS_USER'),      \"password\": os.environ.get('FS_PASS'),      \"server_fqdn\": vm-fs-01.domain.ald.pro  }  def get_os_version():      \"\"\"      :return: \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u044e \u041e\u0421 Astra Linux      \"\"\"      with open(\"\/etc\/astra_version\") as file:          astra_version = file.readline().rstrip('\\n')          return str(astra_version)    def get_kernel_version():      \"\"\"      :return: \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u044e \u044f\u0434\u0440\u0430 \u041e\u0421      \"\"\"      return str(os.uname()[2])      def get_fqdn():      \"\"\"      :return: \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 FQDN \u0410\u0420\u041c      \"\"\"      return str(os.uname()[1])      def get_version_aldpro_client():      \"\"\"      :return: \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u044e ALD PRO \u043a\u043b\u0438\u0435\u043d\u0442\u0430      \"\"\"      result = subprocess.run(DEFINE_COMMAND_GET_VERSION_ALDPRO_CLIENT, capture_output=True, shell=True).stdout.decode()      return result.rstrip('\\n') <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0412\u0441\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438 \u0443\u0436\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u0410\u0420\u041c, \u0432\u0432\u0435\u0434\u0435\u043d\u043d\u044b\u0439 \u0432 \u0434\u043e\u043c\u0435\u043d ALD PRO 2.4.0, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043d\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0432 \u0438\u0445 \u0434\u043e\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435. \u0414\u0430\u043b\u0435\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0431\u043b\u043e\u043a \u0441 \u0444\u0443\u043d\u043a\u0446\u0438\u044f\u043c\u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0438 \u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u0430\u043d\u043d\u044b\u0445:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">def validate_repos_and_backup(logger: logging):      \"\"\"      :logger: \u041e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439      :return: \u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 bool-\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0445\u0430\/\u043d\u0435\u0443\u0434\u0430\u0447\u0438      \"\"\"      directory = \"\/etc\/apt\/sources.list.d\/\"      command_update = \"apt update -y\"      command_mount = f\"mount -t cifs \/\/{DEFINE_CRED_FS[\"server_fqdn\"]}\/backup\/ \/mnt -o username={ DEFINE_CRED_FS[\"user\"]},password=''{DEFINE_CRED_FS[\"password\"]}\"      command_umount = \"umount \/mnt -f -l\"      command_backup_folder = f\"cp -r -v \/opt\/backup\/ \/mnt\/root_backup\/{get_fqdn()}\"      list_repos = []      list_repos += os.listdir(directory)      for repolist in list_repos:          with open(directory + str(repolist), 'r') as file:              lines = file.readlines()          with open(directory + str(repolist), 'w') as file:              for line in lines:                  if line.strip() and line.find(\"#\") and line.rfind(DEFINE_REPO_SERVER_VALIDATE) != -1:                      file.write(line)        try:          result_update = subprocess.run(command_update, capture_output=True, shell=True)          logger.info(\":\\n\" + result_update.stdout.decode())          logger.info(\":\\n\" + \"\u0412\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0437\u0430\u043a\u043e\u043d\u0447\u0435\u043d\u0430.\\n\u0412\u044b\u043f\u043e\u043b\u043d\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0430\u043f\u043a\u0438 \/opt\/backup.\")      except subprocess.CalledProcessError as error_process:          logger.info(f\":\\n\" + f\"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b apt update.\\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435: \"                               f\"{error_process}\")          return False        try:          subprocess.run(command_mount, capture_output=True, shell=True)      except subprocess.CalledProcessError as error_process:          logger.error(\":\\n\", error_process)        if os.path.exists(\"\/mnt\/root_backup\"):          os.mkdir(f\"\/mnt\/root_backup\/{get_fqdn()}\")      else:          logger.error(\":\\n\" + \"\u041e\u0448\u0438\u0431\u043a\u0430 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0434\u0438\u0440\u0435\u043a\u0442\u043e\u0440\u0438\u0438 \u0434\u043b\u044f \u0431\u044d\u043a\u043f\u0430\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f!\")          return False        try:          result_cp = subprocess.run(command_backup_folder, capture_output=True, shell=True)          logger.info(\":\\n\" + result_cp.stdout.decode())      except subprocess.CalledProcessError as error_process:          logger.error(\":\\n\", error_process)          return False      subprocess.run(command_umount, capture_output=True, shell=True)        return True<\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0418, \u043d\u0430\u043a\u043e\u043d\u0435\u0446, \u0431\u043b\u043e\u043a \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u043a \u043f\u043e\u0447\u0442\u043e\u0432\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0435\u0440\u0443 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u043e\u0439 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">def send_email(email_to: str, subject: str, message_text: str, attachment: bool):      \"\"\"      \u041e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u043f\u0438\u0441\u044c\u043c\u043e \u043d\u0430 \u043f\u043e\u0447\u0442\u0443        :email_to: \u0410\u0434\u0440\u0435\u0441 \u043f\u043e\u0447\u0442\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\/\u0433\u0440\u0443\u043f\u043f\u044b \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438      :subject: \u0422\u0435\u043c\u0430 \u043f\u0438\u0441\u044c\u043c\u0430      :message_text: \u0413\u043e\u0442\u043e\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 TXT      \"\"\"          message = MIMEMultipart(\"alternative\")      message[\"Subject\"] = subject      message[\"From\"] = DEFINE_CRED_EMAIL[\"user\"]      message[\"To\"] = email_to        part1 = MIMEText(message_text, \"plain\")      message.attach(part1)        if attachment == True:          with open(DEFINE_LOG_FILE_176, \"rb\") as file:              part = MIMEBase('application', 'octet-stream')              part.set_payload(file.read())              encoders.encode_base64(part)              part.add_header('Content-Disposition', f\"attachment; filename=upgrade_to_176.log\")          message.attach(part)        err_code = 0      try:            if DEFINE_CRED_EMAIL[\"smtp_ssl\"].lower() == 'true' or DEFINE_CRED_EMAIL[\"smtp_ssl\"].lower() == '1':              context = ssl.create_default_context()                with smtplib.SMTP_SSL(DEFINE_CRED_EMAIL[\"smtp_server\"],                                    DEFINE_CRED_EMAIL[\"smtp_port\"],                                    context=context) as server:                    server.login(DEFINE_CRED_EMAIL[\"user\"], DEFINE_CRED_EMAIL[\"password\"])                  server.sendmail(DEFINE_CRED_EMAIL[\"user\"], email_to, message.as_string())                  server.quit()                  email_sended_print_msg = f\"Email {subject} to {email_to} sended!\"        except Exception as err:          print(f\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043d\u0430 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0443: {email_to},\"                f\"\\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u043e\u0448\u0438\u0431\u043a\u0438: {err}.\") <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u041f\u0435\u0440\u0435\u0439\u0434\u0435\u043c \u043a \u0441\u0430\u043c\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421:<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">def upgrade_to_176(email_group_send: str, logger: logging):      \"\"\"      \u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421 \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.7.6      :email_group_send: \u0413\u0440\u0443\u043f\u043f\u0430 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 \u0434\u043b\u044f \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043e\u0431 \u0441\u0442\u0430\u0442\u0443\u0441\u0435 \u043e\u0431\u043d\u043e\u043b\u0432\u0435\u043d\u0438\u044f \u0410\u0420\u041c      :logger: \u041e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439      \"\"\"        command_update = \"apt update -y\"      command_upgrade = \"astra-update -A -r -T\"            if (get_fqdn() != \"\" and (get_os_version() != \"\" and get_os_version() != \"1.7.6\") and get_version_aldpro_client() != \"\"):          if validate_repos_and_backup(logger):              try:                  with open(\"\/etc\/apt\/sources.list\", 'w') as file:                      file.write(DEFINE_REPO_ASTRA_BASE + \"\\n\")                  logger.info(\"\u0424\u0430\u0439\u043b \/etc\/apt\/sources.list - \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d.\")                except IOError as error:                  text_email_false_edit_file = f\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421 Astra Linux \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.7.6,\" \\                                     f\"\\n\u0410\u0420\u041c: {get_fqdn()},\" \\                                     f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u041e\u0421: {get_os_version()}, \" \\                                     f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u044f\u0434\u0440\u0430: {get_kernel_version()},\" \\                                     f\"\\n\u041e\u0448\u0438\u0431\u043a\u0430: {error}.\"                  send_email(email_group_send,                             subject=\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0410\u0420\u041c\",                             message_text=text_email_false_edit_file,                             attachment=True)                  logger.error(\"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \/etc\/apt\/sources.list\")                try:                  result_update = subprocess.run(command_update, capture_output=True, shell=True)                  logger.info(\":\\n\" + result_update.stdout.decode())                  result_upgrade = subprocess.run(command_upgrade, capture_output=True, shell=True)                  logger.info(\":\\n\" + result_upgrade.stdout.decode())                    if (result_update.returncode != 0 or result_upgrade.returncode != 0):                      result_add_ssh_user = subprocess.run(command_add_ssh_user, capture_output=True, shell=True)                      logger.info(\":\\n\" + result_add_ssh_user.stdout.decode())                      text_email_false = f\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421 Astra Linux \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.7.6,\" \\                                         f\"\\n\u0410\u0420\u041c: {get_fqdn()},\" \\                                         f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u041e\u0421: {get_os_version()} ,\" \\                                         f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u044f\u0434\u0440\u0430 \u041e\u0421: {get_kernel_version()} ,\" \\                                         f\"\\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0435 \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0435: {DEFINE_LOG_FILE_176}.\"                      send_email(email_group_send,                                 subject=\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0410\u0420\u041c\",                                 message_text=text_email_false,                                 attachment=True)                  else:                      text_email_true = f\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \" \\                                        f\"\\n\u0410\u0420\u041c: {get_fqdn()}, c \u041e\u0421 Astra Linux \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d.\" \\                                        f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u041e\u0421: {get_os_version()},\" \\                                        f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u044f\u0434\u0440\u0430 \u041e\u0421: {get_kernel_version()} ,\" \\                                        f\"\\n\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435 \u043e\u0431 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043c\u043e\u0436\u043d\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u0432 \u043b\u043e\u0433 \u0444\u0430\u0439\u043b\u0435: {DEFINE_LOG_FILE_176}\"                      send_email(email_group_send,                                 subject=\"\u0423\u0441\u043f\u0435\u0448\u043d\u043e\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0410\u0420\u041c\",                                 message_text=text_email_true,                                 attachment=True)                      postinstall(logger)                except subprocess.CalledProcessError as eror_process:                  text_email = f\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421 Astra Linux 1.7.6, \" \\                               f\"\\n\u0410\u0420\u041c: {get_fqdn()}.\" \\                               f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u041e\u0421: {get_os_version()},\" \\                               f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u044f\u0434\u0440\u0430 \u041e\u0421: {get_kernel_version()} ,\" \\                               f\"\\n\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u044b\u0437\u0432\u0430\u043d\u0430: {eror_process}.\"                  send_email(email_group_send,                             subject=\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0410\u0420\u041c\",                             message_text=text_email,                             attachment=True)            elif get_version_aldpro_client() == \"\":              logger.info(\"ALD Pro \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043b\u0438\u0435\u043d\u0442\u0430 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e \u041e\u0421 \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.7.6\")          else:              text_email = f\"\u0414\u043e\u0431\u0440\u044b\u0439 \u0434\u0435\u043d\u044c! \u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u041e\u0421 Astra Linux 1.7.6, \" \\                           f\"\\n\u0410\u0420\u041c: {get_fqdn()}.\" \\                           f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u041e\u0421: {get_os_version()},\" \\                           f\"\\n\u0410\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u0430\u044f \u044f\u0434\u0440\u0430 \u041e\u0421: {get_kernel_version()} ,\" \\                           f\"\\n\u041e\u0448\u0438\u0431\u043a\u0430 \u0441\u0432\u044f\u0437\u0430\u043d\u0430 \u0441 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u0435\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435\u043c \u0431\u044d\u043a\u0430\u043f\u0430.\"              send_email(email_group_send,                         subject=\"\u041e\u0448\u0438\u0431\u043a\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0410\u0420\u041c\",                         message_text=text_email,                         attachment=True)      else:          logger.info(\"\u041e\u0421 \u0443\u0436\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430 \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.7.6 | \u0410\u0433\u0435\u043d\u0442 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u0432\u0435\u0440\u0441\u0438\u0438 2.4.0 | \u041d\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d \u0431\u044d\u043a\u0430\u043f \u0438 \u0432\u0430\u043b\u0438\u0434\u0430\u0446\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432\") <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0414\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0439 \u041e\u0421 \u0435\u0441\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438, \u043a\u0430\u043a\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u0412 \u043d\u0430\u0448\u0435\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u0441 1.7.5 \u043d\u0430 1.7.6 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u043b\u0438\u0431\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u00abbase\u00bb, \u043b\u0438\u0431\u043e \u00abmain\u00a0\u0438\u00a0update\u00bb. \u041d\u043e \u043f\u043e\u043c\u0438\u043c\u043e \u044d\u0442\u0438\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0435\u0441\u0442\u044c \u0435\u0449\u0435 \u0438 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 (extended),\u00a0\u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u043d\u043e\u0433\u0434\u0430\u00a0\u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u043d\u0443\u0436\u043d\u044b\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c. \u0412\u00a0\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0431\u043b\u043e\u043a\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u00a0\u044d\u0442\u043e\u0433\u043e\u00a0\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f:\u00a0<\/p>\n<pre><code class=\"bash\">def postinstall(logger: logging):      \"\"\"      \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u0432 \u041e\u0421.      :logger: \u041e\u0431\u044a\u0435\u043a\u0442 \u043a\u043b\u0430\u0441\u0441\u0430 \u0434\u043b\u044f \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439      \"\"\"      command_update = \"apt update -y\"      try:          with open(\"\/etc\/apt\/sources.list\", 'w') as file:              file.write(DEFINE_REPO_ASTRA_BASE + \"\\n\" + DEFINE_REPO_ASTRA_EXT)          logger.info(\"\u0424\u0430\u0439\u043b \/etc\/apt\/sources.list - \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439.\")        except IOError as error:          logger.error(\"\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u044f \u0444\u0430\u0439\u043b\u0430 \/etc\/apt\/sources.list - \u043d\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0439 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439\")      result_update = subprocess.run(command_update, capture_output=True, shell=True)      logger.info(\":\\n\" + result_update.stdout.decode())<\/code><\/pre>\n<p>\u041d\u0443 \u0438 \u0432 \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044f main:<\/p>\n<pre><code class=\"bash\">if __name__ == '__main__':        logger = logging.getLogger()      logging.basicConfig(filename=DEFINE_LOG_FILE_176, level=logging.DEBUG,  format=f'%(asctime)s --- %(levelname)s --- %(message)s')        upgrade_to_176(\"upgrade@k2.tech\", logger) <\/code><\/pre>\n<h3>\u041f\u043b\u0430\u043d\u044b \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f ALD Pro \u043d\u0430 2025 \u0433\u043e\u0434 \u0438 \u043f\u0435\u0440\u0441\u043f\u0435\u043a\u0442\u0438\u0432\u044b<\/h3>\n<p>\u00ab\u0413\u0440\u0443\u043f\u043f\u0430 \u0410\u0441\u0442\u0440\u0430\u00bb \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 ALD\u00a0Pro. \u0421\u043e\u0433\u043b\u0430\u0441\u043d\u043e \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u0435 (\u0434\u0435\u043a\u0430\u0431\u0440\u044c 2024), \u043d\u0430 2025 \u0433\u043e\u0434 \u0438 \u0434\u0430\u043b\u0435\u0435 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0432\u0430\u0436\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f:\u00a0<\/p>\n<p><strong>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430:\u00a0<\/strong><\/p>\n<ul>\n<li>\n<p>\u041d\u043e\u0432\u0430\u044f \u043a\u043e\u043d\u0441\u043e\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f: \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0444\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u044b\u0445 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u043e\u0432 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 (\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043e\u0432, \u0433\u0440\u0443\u043f\u043f),\u00a0\u043a\u043e\u0442\u043e\u0440\u0430\u044f\u00a0\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e\u00a0\u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u043c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u0435\u043c, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u0440\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441\u043e \u0441\u043b\u0443\u0436\u0431\u043e\u0439 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430 \u0441\u043e\u0437\u0434\u0430\u0435\u0442 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u041c\u0435\u0445\u0430\u043d\u0438\u0437\u043c \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u0438 2.6:\u00a0\u0431\u0443\u0434\u0435\u0442 \u0434\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u00a0\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u00a0\u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0441\u0442\u0438 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u0441\u043b\u043e\u0436\u043d\u044b\u0445\u00a0\u043a\u043e\u043d\u0444\u043b\u0438\u043a\u0442\u043e\u0432, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438\u00a0\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043e\u0431\u044a\u0435\u043a\u0442\u043e\u0432 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0413\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0443\u0442\u0438\u043b\u0438\u0442\u0430 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d:\u00a0\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0443\u0442\u0438\u043b\u0438\u0442\u044b \u0441\u0442\u0430\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0438\u0437 \u043b\u0438\u0447\u043d\u043e\u0433\u043e \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0430 \u0443\u0436\u0435 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 2.5, \u0430 \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 2.6 \u043e\u043d\u0430 \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u0443\u0434\u0435\u0442 \u0432\u043e\u0439\u0442\u0438 \u0443\u0436\u0435 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u043a\u043e\u0440\u043e\u0431\u043a\u0438 \u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441\u00a0\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u043e\u0439\u00a0\u0447\u0430\u0441\u0442\u044c\u044e.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0435 \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435:\u00a0\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439\u00a0\u0431\u044d\u043a\u0430\u043f\u0430\u00a0\u0438 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f (\u043f\u043b\u0430\u043d \u043d\u0430 Q2-Q4 2025).\u00a0<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435 \u044d\u043a\u043e\u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0438\u00a0\u043c\u0443\u043b\u044c\u0442\u0438\u0432\u0435\u043d\u0434\u043e\u0440\u043d\u043e\u0441\u0442\u044c:\u00a0<\/strong><\/p>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u041e\u0421:\u00a0\u043a\u043b\u0438\u0435\u043d\u0442\u0441\u043a\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0434\u043b\u044f \u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u043d\u044b\u0445 \u0432\u0435\u043d\u0434\u043e\u0440\u043e\u0432 \u0410\u043b\u044c\u0442 \u0438\u00a0\u0420\u0435\u0434\u041e\u0421\u00a0\u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 MVP \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0443\u0436\u0435 \u0441\u0435\u0439\u0447\u0430\u0441, \u0430 \u0441\u043e \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u043a\u0432\u0430\u0440\u0442\u0430\u043b\u0430 \u0431\u0443\u0434\u0435\u0442 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c\u0441\u044f \u0443\u0436\u0435 \u0432 \u043a\u043e\u0440\u043e\u0431\u043a\u0435. \u0421\u0435\u0439\u0447\u0430\u0441 \u0438\u0434\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u043f\u043e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0435 \u0438 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u0438\u0442\u0438\u043a, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432 \u0442\u043e\u043c \u0447\u0438\u0441\u043b\u0435 \u0438 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u044d\u0442\u0438\u043c\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c\u0438.\u00a0<\/p>\n<p><strong>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c:\u00a0<\/strong><\/p>\n<ul>\n<li>\n<p>\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f PKI\u00a0Proxy:\u00a0\u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u0435\u00a0\u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u0432\u043d\u0435\u0448\u043d\u0438\u043c\u0438 \u0423\u0426 (CryptoPro,\u00a0SafeTech).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0423\u0441\u0438\u043b\u0435\u043d\u0438\u0435 \u0413\u041f\u041e:\u00a0\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u043e\u0432 \u0441 \u0443\u0447\u0435\u0442\u043e\u043c \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0430\u0432, \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u0435 LMI-\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u00a0(\u0430\u043d\u0430\u043b\u043e\u0433 WMI-\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432 \u0432 AD) \u0434\u043b\u044f \u0433\u0438\u0431\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0443\u0441\u043b\u043e\u0432\u0438\u0439 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u0438\u0442\u0438\u043a.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0417\u0430\u0449\u0438\u0442\u0430 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432:\u00a0\u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f\u00a0\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043f\u043e \u0448\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430\u00a0\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u043e\u0432\u00a0\u0434\u043e\u043c\u0435\u043d\u0430\u00a0\u0434\u043b\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0438\u0445 \u0440\u0430\u0437\u043c\u0435\u0449\u0435\u043d\u0438\u044f \u0432\u00a0\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0435\u0437\u0430\u0449\u0438\u0449\u0435\u043d\u043d\u044b\u0445 \u043b\u043e\u043a\u0430\u0446\u0438\u044f\u0445\u00a0\u0431\u0435\u0437 \u0440\u0438\u0441\u043a\u0430 \u043a\u043e\u043c\u043f\u0440\u043e\u043c\u0435\u0442\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0434\u043e\u043c\u0435\u043d\u0430\u00a0(\u043f\u043b\u0430\u043d \u043d\u0430 2027).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0428\u0438\u0444\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u0430 (\u0430\u043d\u0430\u043b\u043e\u0433\u00a0BitLocker):\u00a0\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0439 \u0432 TPM \u0438 LDAP (\u043f\u043b\u0430\u043d \u043d\u0430 2027).\u00a0<\/p>\n<\/li>\n<\/ul>\n<p><strong>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0438 \u043d\u043e\u0432\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438:<\/strong>\u00a0<\/p>\n<ul>\n<li>\n<p>\u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438:\u00a0\u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0441 \u0434\u0435\u0441\u044f\u0442\u043a\u0430\u043c\u0438 \u043c\u0438\u043b\u043b\u0438\u043e\u043d\u043e\u0432 \u0437\u0430\u043f\u0438\u0441\u0435\u0439.\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u043b\u0443\u0436\u0431\u044b: \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u00a0AutoFS\u00a0\u0434\u043b\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0449\u0438\u0445 \u043f\u0430\u043f\u043e\u043a\u00a0(\u0430\u043b\u044c\u0442\u0435\u0440\u043d\u0430\u0442\u0438\u0432\u0430\u00a0DFS\u00a0Namespaces).\u00a0<\/p>\n<\/li>\n<li>\n<p>\u0420\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432:\u00a0\u0437\u0430\u043c\u0435\u043d\u0430\u00a0rsync\u00a0\u043d\u0430\u00a0apt-mirror\u00a0\u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0437\u0435\u0440\u043a\u0430\u043b \u0432\u043d\u0435\u0448\u043d\u0438\u0445\u00a0Debian-\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0439 \u0442\u043e\u043f\u043e\u043b\u043e\u0433\u0438\u0438 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438.\u00a0<\/p>\n<\/li>\n<\/ul>\n<h3>\u0412\u043c\u0435\u0441\u0442\u043e \u0437\u0430\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f<\/h3>\n<p>ALD\u00a0Pro\u00a0\u2014 \u044d\u0442\u043e \u043c\u043e\u0449\u043d\u0430\u044f \u0438 \u0433\u0438\u0431\u043a\u0430\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442\u0441\u044f. \u041a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u043d\u0430\u0448 \u043e\u043f\u044b\u0442, \u0434\u043b\u044f \u0440\u0430\u0441\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u043e\u043b\u043d\u043e\u0433\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u044b\u0445 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f\u0445, \u0447\u0430\u0441\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u044e\u0442\u0441\u044f\u00a0\u043a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0435\u00a0\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u2014 \u043e\u0442 \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u00a0salt-\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432\u00a0\u0438\u00a0Ansible-\u043f\u043b\u0435\u0439\u0431\u0443\u043a\u043e\u0432\u00a0\u0434\u043e \u0442\u043e\u043d\u043a\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u043f\u043e\u043b\u0438\u0442\u0438\u043a. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u044f \u043f\u043e\u0434\u0435\u043b\u0438\u043b\u0441\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043b, \u043a\u0430\u043a \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0435 \u041f\u041e \u043c\u043e\u0436\u0435\u0442 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u0434 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438 \u043a\u0440\u0443\u043f\u043d\u043e\u0433\u043e \u0431\u0438\u0437\u043d\u0435\u0441\u0430.\u00a0<\/p>\n<p>\u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u0435\u043c ALD\u00a0Pro, \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c \u0438 \u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c\u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043f\u043e \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044e, \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438\u043b\u0438 \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430 \u0438\u043b\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u043e\u043f\u044b\u0442 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u043d\u0438\u043c \u2014 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0438\u0442\u0435 \u0432 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445!\u00a0<\/p>\n<\/div>\n<\/div>\n<\/div>\n<p><!----><!----><\/div>\n<p><!----><!----><br \/> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/articles\/908966\/\"> https:\/\/habr.com\/ru\/articles\/908966\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<div><!--[--><!--]--><\/div>\n<div id=\"post-content-body\">\n<div>\n<div class=\"article-formatted-body article-formatted-body article-formatted-body_version-2\">\n<div xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\n<p>\u0421\u043b\u0443\u0436\u0431\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u0438\u0433\u0440\u0430\u044e\u0442 \u0432\u0430\u0436\u043d\u0443\u044e \u0440\u043e\u043b\u044c \u0432 \u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0435 \u043b\u044e\u0431\u043e\u0439 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438. \u041a\u0430\u0436\u0434\u0430\u044f \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0441\u043b\u0443\u0436\u0431\u0443 \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u043e\u0432 \u043f\u043e-\u0441\u0432\u043e\u0435\u043c\u0443, \u043e\u0442\u0441\u044e\u0434\u0430 \u0432\u043e\u0437\u043d\u0438\u043a\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0432 \u0435\u0435 \u0430\u0434\u0430\u043f\u0442\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u044b\u0439 \u043a\u043e\u043c\u043f\u043b\u0435\u043a\u0441 ALD\u00a0Pro\u00a0\u043e\u0442 \u00ab\u0413\u0440\u0443\u043f\u043f\u044b \u0410\u0441\u0442\u0440\u0430\u00bb \u2014 \u043a\u0430\u043a \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438, \u0442\u0430\u043a \u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u044b \u0435\u0433\u043e \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u043e\u0434 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432.\u00a0  \u00a0<\/p>\n<p>\u041f\u0440\u0438\u0432\u0435\u0442,\u00a0\u0425\u0430\u0431\u0440! \u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440 \u0423\u0441\u043e\u0432, \u044f \u0440\u0430\u0431\u043e\u0442\u0430\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u043e\u043c \u0432 K2Tex.\u00a0\u041a\u043e\u0433\u0434\u0430 \u044f \u0440\u0430\u0441\u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430\u043c \u043f\u0440\u043e ALD\u00a0Pro, \u043e\u0431\u044b\u0447\u043d\u043e \u0441\u0440\u0430\u0437\u0443 \u0443\u0442\u043e\u0447\u043d\u044f\u044e: \u044d\u0442\u043e \u043d\u0435 \u0436\u0451\u0441\u0442\u043a\u0430\u044f \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f, \u0430 \u0441\u043a\u043e\u0440\u0435\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043c\u043e\u0436\u043d\u043e \u0438 \u043d\u0443\u0436\u043d\u043e \u043f\u043e\u0434\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u0441\u0432\u043e\u0438 \u0437\u0430\u0434\u0430\u0447\u0438. \u0421\u0430\u043c \u043f\u043e \u0441\u0435\u0431\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0443\u0436\u0435 \u043c\u043e\u0449\u043d\u044b\u0439 \u0438 \u0433\u0438\u0431\u043a\u0438\u0439, \u0430 \u0432\u0435\u043d\u0434\u043e\u0440 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043e\u0441\u0442\u0430\u0432\u0438\u043b \u043c\u0435\u0441\u0442\u043e \u0434\u043b\u044f \u043a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u0438. \u0412\u043e\u0442 \u043a\u0430\u043a \u0440\u0430\u0437 \u044d\u0442\u0438\u043c \u043c\u044b \u0432 K2\u0422\u0435\u0445 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438 \u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u0441\u044f. \u0423 \u043d\u0430\u0441 \u043d\u0430\u043a\u043e\u043f\u0438\u043b\u0430\u0441\u044c \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0438\u0437\u0430, \u0438 \u043c\u044b \u0437\u043d\u0430\u0435\u043c, \u0433\u0434\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442 \u0441\u0442\u043e\u0438\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u044c, \u0430 \u0433\u0434\u0435 \u2014 \u0430\u0434\u0430\u043f\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0434 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u044b \u0431\u0438\u0437\u043d\u0435\u0441\u0430. \u041c\u043e\u044f \u0437\u0430\u0434\u0430\u0447\u0430 \u2014 \u043d\u0435 \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043d\u0435\u0434\u0440\u0438\u0442\u044c \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438 \u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u0430 \u043d\u0430\u0435\u0434\u0438\u043d\u0435 \u0441\u043e \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u043e\u0439, \u0430 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0442\u0430\u043a, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u043f\u043e\u043b\u0443\u0447\u0438\u043b \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0439 \u0438\u043c\u0435\u043d\u043d\u043e \u0435\u043c\u0443.  <\/p>\n<h2>\u0427\u0442\u043e \u0442\u0430\u043a\u043e\u0435 ALD Pro<\/h2>\n<p>ALD\u00a0Pro\u00a0\u2014 \u044d\u0442\u043e\u00a0<a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/794214\/\">\u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0430\u044f \u0441\u043b\u0443\u0436\u0431\u0430\u00a0\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0430<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u043c\u0438 \u0441\u0442\u0430\u043d\u0446\u0438\u044f\u043c\u0438, \u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u043e\u043b\u0438\u0442\u0438\u043a\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0443\u044e \u0447\u0430\u0441\u0442\u044c \u0440\u0443\u0442\u0438\u043d\u043d\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432. \u0412 \u043e\u0441\u043d\u043e\u0432\u0443 ALD\u00a0Pro\u00a0\u043f\u043e\u043b\u043e\u0436\u0435\u043d\u044b \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u00a0FreeIPA, \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\u00a0\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438\u00a0Salt\u00a0\u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u043d\u044b\u0435\u00a0\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u044b.  <\/p>\n<p>\u0423 \u00ab\u0413\u0440\u0443\u043f\u043f\u044b \u0410\u0441\u0442\u0440\u0430\u00bb \u0435\u0441\u0442\u044c \u0431\u043b\u043e\u0433 \u043d\u0430\u00a0\u0425\u0430\u0431\u0440\u0435, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u0442\u0430\u0442\u044c \u0435\u0449\u0451 \u0438 \u0432\u043e\u0442 \u044d\u0442\u0438\u00a0\u043f\u043e\u0441\u0442\u044b:\u00a0\u00a0  <\/p>\n<ul>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/794214\/\">\u0412\u043e\u043b\u0448\u0435\u0431\u043d\u0430\u044f \u0442\u0430\u0431\u043b\u0435\u0442\u043a\u0430, \u0438\u043b\u0438 \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u0438\u0437\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u041e\u0421 Astra Linux \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e ALD Pro<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/891064\/\">\u041a\u0430\u043a \u043c\u044b \u0443\u0441\u043a\u043e\u0440\u0438\u043b\u0438 \u0432\u0430\u043d\u0438\u043b\u044c\u043d\u0443\u044e FreeIPA \u0432 20 \u0440\u0430\u0437!!! (\u043f\u043e\u0447\u0442\u0438)<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/866974\/\">\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 SAMBA \u0432 \u043a\u043e\u0440\u043f\u043e\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u043c \u0434\u043e\u043c\u0435\u043d\u0435<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"https:\/\/habr.com\/ru\/companies\/astralinux\/articles\/886300\/\">\u041a\u0430\u043a \u043c\u044b \u043f\u0440\u043e\u043a\u0430\u0447\u0430\u043b\u0438 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u044e \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0430<\/a><\/p>\n<\/li>\n<\/ul>\n<p>\u041c\u044b \u0432 K2Tex \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c ALD\u00a0Pro\u00a0\u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438\u00a0\u0438\u043c\u043f\u043e\u0440\u0442\u043e\u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445\u00a0\u0418\u0422-\u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440 \u0437\u0430\u043a\u0430\u0437\u0447\u0438\u043a\u043e\u0432. \u041a\u043e\u0433\u0434\u0430 \u0430\u043f\u043f\u0430\u0440\u0430\u0442\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u0430 \u0438 \u043f\u043e\u0432\u0435\u0440\u0445 \u043d\u0435\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0435 \u043c\u0430\u0448\u0438\u043d\u044b, \u043f\u0435\u0440\u0432\u043e\u0435, \u0447\u0442\u043e \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u2014 \u044d\u0442\u043e \u0440\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c\u00a0ALD\u00a0Pro\u00a0\u0438 \u0442\u0435\u043c \u0441\u0430\u043c\u044b\u043c \u0441\u043e\u0437\u0434\u0430\u0442\u044c\u00a0\u0431\u0430\u0437\u043e\u0432\u0443\u044e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u0443\u044e \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0443.\u00a0  <\/p>\n<h2>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f ALD Pro \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e API<\/h2>\n<p>\u0420\u0443\u0447\u043d\u043e\u0435 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 ALD\u00a0Pro\u00a0\u0432 \u0431\u043e\u043b\u044c\u0448\u0438\u0445, \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u044f\u0445 \u2014 \u0437\u0430\u0434\u0430\u0447\u0430 \u043d\u0435\u0442\u0440\u0438\u0432\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u043d\u0430\u044f \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438. \u0418\u043c\u0435\u043d\u043d\u043e \u0437\u0434\u0435\u0441\u044c \u043d\u0430 \u043f\u043e\u043c\u043e\u0449\u044c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f. \u041d\u0430\u043b\u0438\u0447\u0438\u0435 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e API \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442\u00a0 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 ALD\u00a0Pro.\u00a0<\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 2.2.0, \u0432 ALD\u00a0Pro\u00a0\u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u043f\u043e\u043b\u043d\u043e\u0446\u0435\u043d\u043d\u044b\u0439 API,\u00a0\u00a0\u0447\u0442\u043e \u0441\u0442\u0430\u043b\u043e \u043f\u043e\u0432\u043e\u0440\u043e\u0442\u043d\u044b\u043c \u043c\u043e\u043c\u0435\u043d\u0442\u043e\u043c \u2014 \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u0430\u0441, \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0442\u043e\u0440\u043e\u0432.\u00a0\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 API \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e \u0432 \u043b\u0438\u0447\u043d\u043e\u043c \u043a\u0430\u0431\u0438\u043d\u0435\u0442\u0435 \u0432 \u0432\u0438\u0434\u0435 YAML-\u0444\u0430\u0439\u043b\u0430 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435\u00a0OpenAPI. \u042d\u0442\u043e \u0441\u0438\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u043c\u043e\u0436\u0435\u043c \u0440\u0430\u0437\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0442\u044c ALD\u00a0Pro\u00a0\u043d\u0435 \u0440\u0443\u043a\u0430\u043c\u0438, \u0430 \u043f\u043e \u043d\u0430\u0436\u0430\u0442\u0438\u044e \u043a\u043d\u043e\u043f\u043a\u0438.\u00a0\u0412 K2Tex \u043c\u044b \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0438 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c ALD\u00a0Pro.\u00a0\u00a0<\/p>\n<p>\u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u043f\u0440\u0438\u043c\u0435\u0440\u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0445\u043e\u0447\u0443 \u0441 \u0432\u0430\u043c\u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u043c\u043e\u0438\u043c\u0438 \u043d\u0430\u0440\u0430\u0431\u043e\u0442\u043a\u0430\u043c\u0438 \u043d\u0430 \u044f\u0437\u044b\u043a\u0435\u00a0Bash. \u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0438\u0436\u0435\u00a0(\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 ALD\u00a0Pro\u00a02.5.0):<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash     #**************************************************************************************************************************    #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 Astra Linux - BASE  ASTRA_BASE=\" http:\/\/dl.astralinux.ru\/astra\/frozen\/1.7_x86-64\/1.7.6\/uu\/2\/repository-base\/\"  #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 ALDPro  ALD_MAIN=\"https:\/\/dl.astralinux.ru\/aldpro\/frozen\/01\/2.5.0\/ \"    #\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0438\u043c\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  DC_NAME=\"dc1\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  IPADDR=\"192.168.8.10\"  #\u041c\u0430\u0441\u043a\u0430 \u0441\u0435\u0442\u0438  MASK=\"255.255.255.0\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u0448\u043b\u044e\u0437\u0430 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  GATEWAY=\"192.168.8.1\"  #\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0430  DOMAIN_NAME=\"ald.pro.ru\"  #IP-\u0430\u0434\u0440\u0435\u0441 DNS \u0441\u0435\u0440\u0435\u0432\u0435\u0440\u0430 \u0434\u043b\u044f \u041a\u0414 \u043d\u0430 \u043c\u043e\u043c\u0435\u043d\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438\u0437 \u0432\u043d\u0435\u0448\u043d\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432, \u043f\u043e\u0441\u043b\u0435 \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u0441\u044f \u043d\u0430 127.0.0.1  NAMESERVER=\"77.88.8.8\"  #\u0412\u0432\u043e\u0434 \u043f\u0430\u0440\u043e\u043b\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430:\"  read -sr PASSWORD_ADMIN  #**************************************************************************************************************************    function install_pdc() {        #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Astra Linux  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list  deb $ASTRA_BASE 1.7_x86-64 main non-free contrib  EOL    #\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421 \u0434\u043e \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438  apt update -y  apt install astra-update -y &amp;&amp; sudo astra-update -A -r -T    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 ALD Pro  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list.d\/aldpro.list  deb $ALD_MAIN  1.7_x86-64  base  main  EOL    apt update -y    #\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0433\u043e \u0438\u043c\u0435\u043d\u0438 hostname  hostnamectl set-hostname $DC_NAME.$DOMAIN_NAME    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438  cat &lt;&lt;EOL &gt; \/etc\/network\/interfaces  source \/etc\/network\/interfaces.d\/*    auto lo  iface lo inet loopback    auto eth0  iface eth0 inet static  address $IPADDR  netmask $MASK  gateway $GATEWAY  dns-search $DOMAIN_NAME  EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \/etc\/hosts  cat &lt;&lt;EOL &gt; \/etc\/hosts  127.0.0.1 localhost.localdomain localhost  $IPADDR $DC_NAME.$DOMAIN_NAME $DC_NAME   EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0444\u0430\u0439\u043b\u0430 \/etc\/resolv.conf  cat &lt;&lt;EOL &gt; \/etc\/resolv.conf  search $DOMAIN_NAME  nameserver $NAMESERVER  EOL    #\u041e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u043b\u0443\u0436\u0431\u044b NetworkManager  systemctl stop NetworkManager  systemctl disable NetworkManager  systemctl enable networking  systemctl restart networking      #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438  LEVEL=`astra-modeswitch get`    case $LEVEL in  0|1)            astra-modeswitch set 2          astra-mic-control enable          astra-mac-control enable          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;    2)          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;  esac    #\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432  DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-mp aldpro-syncer aldpro-gc    #\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 aldpro-mp  ALDPRO_CHECK=`dpkg -l | grep aldpro-mp`  if [[ -z $ALDPRO_CHECK ]];  then  echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d! \u041f\u0430\u043a\u0435\u0442 aldpro-mp - \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.\"  exit 1    else    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \/etc\/resolv.conf  cat &lt;&lt;EOL &gt; \/etc\/resolv.conf  search $DOMAIN_NAME  nameserver 127.0.0.1  EOL    systemctl restart networking    #\u0417\u0430\u043f\u0443\u0441\u043a \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  aldpro-server-install -d $DOMAIN_NAME  -p $PASSWORD_ADMIN -n $DC_NAME --ip $IPADDR  --setup_syncer --setup_gc --no-reboot    fi  reboot    }      if [[ -z $DC_NAME ||  -z $IPADDR  ||  -z $MASK  ||  -z $GATEWAY  ||  -z $NAMESERVER  ||  -z $DOMAIN_NAME  ||  -z $PASSWORD_ADMIN ]];  then    echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430! \u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u0437\u0430\u043f\u043e\u043b\u043d\u044f\u0435\u043c\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u0438\u0442\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u0437\u0430\u043f\u0443\u0441\u043a\u0430.\"    else    install_pdc    fi <\/code><\/pre>\n<\/div>\n<\/details>\n<p>\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d \u0438 \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d \u043d\u0438\u0436\u0435 (\u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0432\u0435\u0440\u0441\u0438\u0438 ALD\u00a0Pro\u00a02.5.0):\u00a0<\/p>\n<details class=\"spoiler\">\n<summary>\u0421\u043a\u0440\u044b\u0442\u044b\u0439 \u0442\u0435\u043a\u0441\u0442<\/summary>\n<div class=\"spoiler__content\">\n<pre><code class=\"bash\">#!\/bin\/bash     #**************************************************************************************************************************    #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 Astra Linux - BASE  ASTRA_BASE=\"http:\/\/dl.astralinux.ru\/astra\/frozen\/1.7_x86-64\/1.7.6\/uu\/2\/repository-base\/\"  #\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 ALDPro  ALD_MAIN=\"https:\/\/dl.astralinux.ru\/aldpro\/frozen\/01\/2.5.0\/ \"    #\u041a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0438\u043c\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430  SERVER_NAME=\"dc2\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u0441\u0435\u0440\u0432\u0435\u0440\u0430  IPADDR=\"192.168.8.11\"  #\u041c\u0430\u0441\u043a\u0430 \u0441\u0435\u0442\u0438  MASK=\"255.255.255.0\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u0448\u043b\u044e\u0437\u0430 \u043f\u043e-\u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e  GATEWAY=\"192.168.8.1\"  #\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435 \u0434\u043e\u043c\u0435\u043d\u0430  DOMAIN_NAME=\"ald.pro.ru\"  #IP-\u0430\u0434\u0440\u0435\u0441 \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440\u0430 \u0434\u043e\u043c\u0435\u043d\u0430  NAMESERVER=\"192.168.8.10\"  FIRST_DC_NAME=\"dc1\"  SITENAME=\"\u0413\u043e\u043b\u043e\u0432\u043d\u043e\u0439 \u043e\u0444\u0438\u0441\"  #\u0412\u0432\u043e\u0434 \u0438\u043c\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d  echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u0443\u0447\u0435\u0442\u043d\u0443\u044e \u0437\u0430\u043f\u0438\u0441\u044c \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d:\"  read  ADMIN_NAME  #\u0412\u0432\u043e\u0434 \u043f\u0430\u0440\u043e\u043b\u044f \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0441 \u043f\u0440\u0430\u0432\u0430\u043c\u0438 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d  echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043f\u0430\u0440\u043e\u043b\u044c \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0434\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d:\"  read -sr PASSWORD_ADMIN    #**************************************************************************************************************************    function join_domain() {    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 hostname  hostnamectl set-hostname $SERVER_NAME.$DOMAIN_NAME       #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0441\u0435\u0442\u0438  systemctl stop NetworkManager  systemctl disable NetworkManager  systemctl enable networking    cat &lt;&lt;EOL &gt; \/etc\/network\/interfaces  source \/etc\/network\/interfaces.d\/*    auto lo  iface lo inet loopback    auto eth0  iface eth0 inet static  address $IPADDR  netmask $MASK  gateway $GATEWAY  dns-nameservers $NAMESERVER  dns-search $DOMAIN_NAME   EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \/etc\/hosts  cat &lt;&lt;EOL &gt; \/etc\/hosts  127.0.0.1 localhost.localdomain localhost  $IPADDR $SERVER_NAME.$DOMAIN_NAME  $PC_NAME  EOL    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \/etc\/resolv.conf  cat &lt;&lt;EOL &gt; \/etc\/resolv.conf  search $DOMAIN_NAME  nameserver $NAMESERVER  EOL    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 Astra Linux  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list  deb $ASTRA_BASE 1.7_x86-64 main non-free contrib  EOL    #\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u041e\u0421  apt update -y  apt install astra-update -y &amp;&amp; sudo astra-update -A -r -T    #\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 ALD Pro  cat &lt;&lt;EOL &gt; \/etc\/apt\/sources.list.d\/aldpro.list  deb $ALD_MAIN 1.7_x86-64  base  main  EOL    systemctl restart networking    #\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438  LEVEL=`astra-modeswitch get`    case $LEVEL in  0|1)            astra-modeswitch set 2          astra-mic-control enable          astra-mac-control enable          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;    2)          echo \"\u0423\u0440\u043e\u0432\u0435\u043d\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438: \u0421\u043c\u043e\u043b\u0435\u043d\u0441\u043a\"          ;;  esac    #\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 ALD Pro  apt update -y  DEBIAN_FRONTEND=noninteractive apt-get install -q -y aldpro-client  ALDPRO_CHECK=`dpkg -l | grep aldpro-client`    if [[ -z $ALDPRO_CHECK ]];  then  echo \"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432\u0432\u043e\u0434\u0430 \u0432 \u0434\u043e\u043c\u0435\u043d! \u041f\u0430\u043a\u0435\u0442 aldpro-client - \u043d\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435.\"  exit 1    else    #\u0412\u0432\u043e\u0434 \u0432 \u0434\u043e\u043c\u0435\u043d  \/opt\/rbta\/aldpro\/client\/bin\/aldpro-client-installer -c $DOMAIN_NAME  -u $ADMIN_NAME  -p $PASSWORD_ADMIN -d $SERVER_NAME -i -f    sleep 10  systemctl stop sssd   sed -i '\/id_provider = ipa\/a dyndns_update = true\\ndyndns_refresh_interval = 60' \/etc\/sssd\/sssd.conf  systemctl restart sssd       fi      }    function install_roles() {      echo \"\u0423\u043a\u0430\u0436\u0438\u0442\u0435 \u043a\u0430\u043a\u0443\u044e \u0440\u043e\u043b\u044c \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c?<\/code><\/pre>\n<\/div>\n<\/details>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-459561","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/459561","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=459561"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/459561\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=459561"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=459561"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=459561"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}