Files
SYSAHELPER/sysahelper/REG2026/REG26_ 3. Project_03 _ sysahelper.html

2014 lines
120 KiB
HTML
Raw Normal View History

2026-05-07 19:20:10 +05:00
<!DOCTYPE html>
<html dir="ltr" lang="ru" xml:lang="ru" class="yui3-js-enabled"><head>
<title>REG26: 3. Project_03 | sysahelper</title>
<link rel="shortcut icon" href="https://sysahelper.ru/pluginfile.php/1/theme_moove/favicon/1703880572/22212monkey_98814.ico">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="keywords" content="moodle, REG26: 3. Project_03 | sysahelper">
<link rel="stylesheet" type="text/css" href="REG26_%203.%20Project_03%20_%20sysahelper_files/combo.css"><script async="" src="REG26_%203.%20Project_03%20_%20sysahelper_files/tag.js"></script><script charset="utf-8" id="yui_3_18_1_1_1778160109136_12" src="REG26_%203.%20Project_03%20_%20sysahelper_files/combo_002" async=""></script><script id="firstthemesheet" type="text/css">/** Required in order to fix style inclusion problems in IE with YUI **/</script><link rel="stylesheet" type="text/css" href="REG26_%203.%20Project_03%20_%20sysahelper_files/styles.css">
<script>
//<![CDATA[
var M = {}; M.yui = {};
M.pageloadstarttime = new Date();
M.cfg = {"wwwroot":"https:\/\/sysahelper.ru","homeurl":{},"sesskey":"I78ejZljGV","sessiontimeout":"28800","sessiontimeoutwarning":"1200","themerev":"1703880572","slasharguments":1,"theme":"moove","iconsystemmodule":"core\/icon_system_fontawesome","jsrev":"1703880200","admin":"admin","svgicons":true,"usertimezone":"\u0415\u0432\u0440\u043e\u043f\u0430\/\u041c\u043e\u0441\u043a\u0432\u0430","language":"ru","courseId":43,"courseContextId":1078,"contextid":1165,"contextInstanceId":785,"langrev":1703880200,"templaterev":"1703880200"};var yui1ConfigFn = function(me) {if(/-skin|reset|fonts|grids|base/.test(me.name)){me.type='css';me.path=me.path.replace(/\.js/,'.css');me.path=me.path.replace(/\/yui2-skin/,'/assets/skins/sam/yui2-skin')}};
var yui2ConfigFn = function(me) {var parts=me.name.replace(/^moodle-/,'').split('-'),component=parts.shift(),module=parts[0],min='-min';if(/-(skin|core)$/.test(me.name)){parts.pop();me.type='css';min=''}
if(module){var filename=parts.join('-');me.path=component+'/'+module+'/'+filename+min+'.'+me.type}else{me.path=component+'/'+component+'.'+me.type}};
YUI_config = {"debug":false,"base":"https:\/\/sysahelper.ru\/lib\/yuilib\/3.18.1\/","comboBase":"https:\/\/sysahelper.ru\/theme\/yui_combo.php?","combine":true,"filter":null,"insertBefore":"firstthemesheet","groups":{"yui2":{"base":"https:\/\/sysahelper.ru\/lib\/yuilib\/2in3\/2.9.0\/build\/","comboBase":"https:\/\/sysahelper.ru\/theme\/yui_combo.php?","combine":true,"ext":false,"root":"2in3\/2.9.0\/build\/","patterns":{"yui2-":{"group":"yui2","configFn":yui1ConfigFn}}},"moodle":{"name":"moodle","base":"https:\/\/sysahelper.ru\/theme\/yui_combo.php?m\/1703880200\/","combine":true,"comboBase":"https:\/\/sysahelper.ru\/theme\/yui_combo.php?","ext":false,"root":"m\/1703880200\/","patterns":{"moodle-":{"group":"moodle","configFn":yui2ConfigFn}},"filter":null,"modules":{"moodle-core-blocks":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification"]},"moodle-core-actionmenu":{"requires":["base","event","node-event-simulate"]},"moodle-core-notification":{"requires":["moodle-core-notification-dialogue","moodle-core-notification-alert","moodle-core-notification-confirm","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-core-notification-dialogue":{"requires":["base","node","panel","escape","event-key","dd-plugin","moodle-core-widget-focusafterclose","moodle-core-lockscroll"]},"moodle-core-notification-alert":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-confirm":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-exception":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-notification-ajaxexception":{"requires":["moodle-core-notification-dialogue"]},"moodle-core-lockscroll":{"requires":["plugin","base-build"]},"moodle-core-event":{"requires":["event-custom"]},"moodle-core-chooserdialogue":{"requires":["base","panel","moodle-core-notification"]},"moodle-core-maintenancemodetimer":{"requires":["base","node"]},"moodle-core-handlebars":{"condition":{"trigger":"handlebars","when":"after"}},"moodle-core-formchangechecker":{"requires":["base","event-focus","moodle-core-event"]},"moodle-core-dragdrop":{"requires":["base","node","io","dom","dd","event-key","event-focus","moodle-core-notification"]},"moodle-core_availability-form":{"requires":["base","node","event","event-delegate","panel","moodle-core-notification-dialogue","json"]},"moodle-backup-backupselectall":{"requires":["node","event","node-event-simulate","anim"]},"moodle-course-util":{"requires":["node"],"use":["moodle-course-util-base"],"submodules":{"moodle-course-util-base":{},"moodle-course-util-section":{"requires":["node","moodle-course-util-base"]},"moodle-course-util-cm":{"requires":["node","moodle-course-util-base"]}}},"moodle-course-management":{"requires":["base","node","io-base","moodle-core-notification-exception","json-parse","dd-constrain","dd-proxy","dd-drop","dd-delegate","node-event-delegate"]},"moodle-course-categoryexpander":{"requires":["node","event-key"]},"moodle-course-dragdrop":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification","moodle-course-coursebase","moodle-course-util"]},"moodle-form-dateselector":{"requires":["base","node","overlay","calendar"]},"moodle-form-shortforms":{"requires":["node","base","selector-css3","moodle-core-event"]},"moodle-question-searchform":{"requires":["base","node"]},"moodle-question-preview":{"requires":["base","dom","event-delegate","event-key","core_question_engine"]},"moodle-question-chooser":{"requires":["moodle-core-chooserdialogue"]},"moodle-availability_completion-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_date-form":{"requires":["base","node","event","io","moodle-core_availability-form"]},"moodle-availability_grade-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_group-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-availability_grouping-form":{"requires":["base","node","event"
M.yui.loader = {modules: {}};
//]]>
</script>
<link rel="preconnect" href="https://fonts.googleapis.com/">
<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin="">
<link href="REG26_%203.%20Project_03%20_%20sysahelper_files/css2.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="core/first" src="REG26_%203.%20Project_03%20_%20sysahelper_files/requirejs.php"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="REG26_%203.%20Project_03%20_%20sysahelper_files/javascript.php"></script><script type="text/x-mathjax-config">
MathJax.Hub.Config({
config: ["Accessible.js", "Safe.js"],
errorSettings: { message: ["!"] },
skipStartupTypeset: true,
messageStyle: "none"
});
</script><script type="text/javascript">
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-701');
});
;
require(['core_courseformat/local/courseindex/section'], function(component) {
component.init('course-index-section-568');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-778');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-704');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-719');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-705');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-720');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-724');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-722');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-721');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-725');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-726');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-727');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-728');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-729');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-730');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-731');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-732');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-733');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-734');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-735');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-736');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-737');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-772');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-773');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-774');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-775');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-776');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-777');
});
;
require(['core_courseformat/local/courseindex/section'], function(component) {
component.init('course-index-section-569');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-779');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-782');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-783');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-784');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-780');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-781');
});
;
require(['core_courseformat/local/courseindex/cm'], function(component) {
component.init('course-index-cm-785');
});
;
require(['core_courseformat/local/courseindex/section'], function(component) {
component.init('course-index-section-570');
});
;
require(['core_courseformat/local/courseindex/courseindex'], function(component) {
component.init('course-index');
});
</script></head>
<body id="page-mod-page-view" class="format-topics limitedwidth path-mod path-mod-page gecko dir-ltr lang-ru yui-skin-sam yui3-skin-sam sysahelper-ru pagelayout-incourse course-43 context-1165 cmid-785 cm-type-page category-8 theme uses-drawers drawer-open-index jsenabled">
<div id="accessibilitybar" class="fixed-top">
<div class="container-fluid">
<div class="bars">
<div class="fontsize">
<span>Размер шрифта</span>
<ul>
<li><a class="btn btn-default" data-action="decrease" title="Уменьшить размер шрифта" id="fontsize_dec">A-</a></li>
<li><a class="btn btn-default disabled" data-action="reset" title="Сбросить размер шрифта" id="fontsize_reset">A</a></li>
<li><a class="btn btn-default" data-action="increase" title="Увеличить размер шрифта" id="fontsize_inc">A+</a></li>
</ul>
</div>
<div class="sitecolor">
<span>Цвет сайта</span>
<ul>
<li><a class="btn btn-default" data-action="reset" title="Сбросить цвет сайта" id="sitecolor_color1">R</a></li>
<li><a class="btn btn-default" data-action="sitecolor-color-2" title="Низкий контраст 1" id="sitecolor_color2">A</a></li>
<li><a class="btn btn-default" data-action="sitecolor-color-3" title="Низкий контраст 2" id="sitecolor_color3">A</a></li>
<li><a class="btn btn-default" data-action="sitecolor-color-4" title="Высокий контраст" id="sitecolor_color4">A</a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="toast-wrapper mx-auto py-0 fixed-top" role="status" aria-live="polite"></div>
<div id="page-wrapper" class="d-print-block">
<div>
<a class="sr-only sr-only-focusable" href="#maincontent">Перейти к основному содержанию</a>
</div><script src="REG26_%203.%20Project_03%20_%20sysahelper_files/javascript_002.php"></script>
<script src="REG26_%203.%20Project_03%20_%20sysahelper_files/combo"></script><script src="REG26_%203.%20Project_03%20_%20sysahelper_files/javascript_003.php"></script>
<script>
//<![CDATA[
document.body.className += ' jsenabled';
//]]>
</script>
<nav class="navbar fixed-top navbar-light bg-white navbar-expand shadow" aria-label="Навигация по сайту">
<button class="navbar-toggler aabtn d-block d-md-none px-1 my-1 border-0" data-toggler="drawers" data-action="toggle" data-target="theme_moove-drawers-primary" data-disabled-toggle="undefined" data-restore-tooltip-on-blur="true">
<span class="navbar-toggler-icon"></span>
<span class="sr-only">Боковая панель</span>
</button>
<a href="https://sysahelper.ru/" class="navbar-brand d-none d-md-flex align-items-center m-0 mr-4 p-0 aabtn">
<img src="REG26_%203.%20Project_03%20_%20sysahelper_files/4.jpg" class="logo mr-1" alt="sysahelper">
</a>
<div class="primary-navigation">
<nav class="moremenu navigation observed">
<ul id="moremenu-69fc91d8afb8b-navbar-nav" role="menubar" class="nav more-nav navbar-nav">
<li data-key="home" class="nav-item" role="none" data-forceintomoremenu="false">
<a role="menuitem" class="nav-link " href="https://sysahelper.ru/" tabindex="0" aria-current="true">
В начало
</a>
</li>
<li role="none" class="nav-item dropdown dropdownmoremenu d-none" data-region="morebutton">
<a class="dropdown-toggle nav-link " href="#" id="moremenu-dropdown-69fc91d8afb8b" role="menuitem" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" tabindex="-1">
Дополнительно
</a>
<ul class="dropdown-menu dropdown-menu-left" data-region="moredropdown" aria-labelledby="moremenu-dropdown-69fc91d8afb8b" role="menu">
</ul>
</li>
</ul>
</nav>
</div>
<ul class="navbar-nav d-none d-md-flex my-1 px-1">
<!-- page_heading_menu -->
</ul>
<div id="usernavigation" class="navbar-nav ml-auto">
<div class="navbarcallbacks">
</div>
<div id="searchinput-navbar-69fc91d8b15ee69fc91d8b01d23" class="simplesearchform">
<div class="collapse" id="searchform-navbar">
<form autocomplete="off" action="https://sysahelper.ru/search/index.php" method="get" accept-charset="utf-8" class="mform form-inline searchform-navbar">
<input type="hidden" name="context" value="1165">
<div class="input-group">
<label for="searchinput-69fc91d8b15ee69fc91d8b01d23">
<span class="sr-only">Найти</span>
</label>
<input type="text" id="searchinput-69fc91d8b15ee69fc91d8b01d23" class="form-control withclear" placeholder="Найти" aria-label="Найти" name="q" data-region="input" autocomplete="off">
<a class="btn btn-close" data-action="closesearch" data-toggle="collapse" href="#searchform-navbar" role="button">
<i class="icon fa fa-times fa-fw " aria-hidden="true"></i>
<span class="sr-only">Закрыть</span>
</a>
<div class="input-group-append">
<button type="submit" class="btn btn-submit" data-action="submit">
<i class="icon fa fa-search fa-fw " aria-hidden="true"></i>
<span class="sr-only">Найти</span>
</button>
</div>
</div>
</form>
</div>
<a class="btn btn-open rounded-0 nav-link" data-toggle="collapse" data-action="opensearch" href="#searchform-navbar" role="button" aria-expanded="false" aria-controls="searchform-navbar" title="Изменить данные поисковой строки">
<i class="icon fa fa-search fa-fw " aria-hidden="true"></i>
<span class="sr-only">Изменить данные поисковой строки</span>
</a>
</div>
<div class="divider border-left h-75 align-self-center mx-1"></div>
<div class="langmenu">
<div class="dropdown show">
<a href="#" role="button" id="lang-menu-toggle" data-toggle="dropdown" aria-label="Язык" aria-haspopup="true" aria-controls="lang-action-menu" class="btn dropdown-toggle">
<i class="icon fa fa-language fa-fw mr-1" aria-hidden="true"></i>
<span class="langbutton">
Русский (ru)
</span>
<b class="caret"></b>
</a>
<div role="menu" aria-labelledby="lang-menu-toggle" id="lang-action-menu" class="dropdown-menu dropdown-menu-right">
<a href="#" class="dropdown-item pl-5" role="menuitem" aria-current="true">
Русский (ru)
</a>
<a href="https://sysahelper.ru/mod/page/view.php?id=785&amp;lang=en" class="dropdown-item pl-5" role="menuitem">
English (en)
</a>
</div>
</div>
</div>
<div class="divider border-left h-75 align-self-center mx-1"></div>
<div class="d-flex align-items-stretch usermenu-container" data-region="usermenu">
<div class="usermenu">
<span class="login pl-2">
Вы используете гостевой доступ
<div class="divider border-left h-75 align-self-center mx-2"></div>
<a href="https://sysahelper.ru/login/index.php">Вход</a>
</span>
</div>
</div>
</div>
</nav>
<div class="drawer drawer-left drawer-primary d-print-none" data-region="fixed-drawer" id="theme_moove-drawers-primary" data-preference="" data-state="show-drawer-primary" data-forceopen="0" data-close-on-resize="1" aria-hidden="true">
<div class="drawerheader">
<button class="btn drawertoggle icon-no-margin hidden" data-toggler="drawers" data-action="closedrawer" data-target="theme_moove-drawers-primary" data-toggle="tooltip" data-placement="right" title="Закрыть панель" data-aria-hidden-tab-index="" tabindex="-1">
<i class="icon fa fa-times fa-fw " aria-hidden="true"></i>
</button>
<div class="drawerheadercontent hidden">
</div>
</div>
<div class="drawercontent drag-container" data-usertour="scroller">
<div class="list-group">
<a href="https://sysahelper.ru/" class="list-group-item list-group-item-action " data-aria-hidden-tab-index="" tabindex="-1">
В начало
</a>
</div>
</div>
</div>
<div class="drawer drawer-left show d-print-none scrolled" data-region="fixed-drawer" id="theme_boost-drawers-courseindex" data-preference="drawer-open-index" data-state="show-drawer-left" data-forceopen="0" data-close-on-resize="0">
<div class="drawerheader">
<button class="btn drawertoggle icon-no-margin" data-toggler="drawers" data-action="closedrawer" data-target="theme_boost-drawers-courseindex" data-toggle="tooltip" data-placement="right" title="Закрыть оглавление курса">
<i class="icon fa fa-times fa-fw " aria-hidden="true"></i>
</button>
<div class="drawerheadercontent">
</div>
</div>
<div class="drawercontent drag-container" data-usertour="scroller">
<nav id="courseindex" class="courseindex">
<div id="courseindex-content">
<div id="course-index" class="courseindex " role="tree">
<div class="courseindex-section " id="course-index-section-568" data-for="section" data-id="568" data-number="0" role="treeitem" aria-owns="courseindexcollapse0" tabindex="0" aria-selected="true">
<div class="courseindex-item d-flex
courseindex-section-title" id="courseindexsection0" data-for="section_item" tabindex="-1">
<a data-toggle="collapse" href="#courseindexcollapse0" class="courseindex-chevron icons-collapse-expand " aria-expanded="true" aria-controls="courseindexcollapse0" tabindex="-1">
<span class="collapsed-icon icon-no-margin mr-1" title="Развернуть" tabindex="-1">
<span class="dir-rtl-hide" tabindex="-1"><i class="icon fa fa-chevron-right fa-fw " aria-hidden="true" tabindex="-1"></i></span>
<span class="dir-ltr-hide" tabindex="-1"><i class="icon fa fa-chevron-left fa-fw " aria-hidden="true" tabindex="-1"></i></span>
<span class="sr-only" tabindex="-1">Развернуть</span>
</span>
<span class="expanded-icon icon-no-margin mr-1" title="Свернуть" tabindex="-1">
<i class="icon fa fa-chevron-down fa-fw " aria-hidden="true" tabindex="-1"></i>
<span class="sr-only" tabindex="-1">Свернуть</span>
</span>
</a>
<a href="https://sysahelper.ru/course/view.php?id=43#section-0" class="courseindex-link text-truncate" data-action="togglecourseindexsection" data-for="section_title" tabindex="-1">
Общее
</a>
<span class="current-badge badge badge-primary ml-2 px-2 rounded-pill" tabindex="-1">
Выделено
</span>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</div>
<div id="courseindexcollapse0" class="courseindex-item-content collapse show" aria-labelledby="courseindexsection0" role="group" tabindex="-1">
<ul class="courseindex-sectioncontent unlist" data-for="cmlist" data-id="568" role="group" tabindex="-1">
<li class="courseindex-item
d-flex
" id="course-index-cm-701" data-for="cm" data-id="701" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/folder/view.php?id=701" data-for="cm_name" tabindex="-1">
Конкурсная документация (в исходном виде)
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
</ul>
</div>
</div>
<div class="courseindex-section " id="course-index-section-569" data-for="section" data-id="569" data-number="1" role="treeitem" aria-owns="courseindexcollapse1" tabindex="-1" aria-selected="false">
<div class="courseindex-item d-flex
courseindex-section-title" id="courseindexsection1" data-for="section_item" tabindex="-1">
<a data-toggle="collapse" href="#courseindexcollapse1" class="courseindex-chevron icons-collapse-expand " aria-expanded="true" aria-controls="courseindexcollapse1" tabindex="-1">
<span class="collapsed-icon icon-no-margin mr-1" title="Развернуть" tabindex="-1">
<span class="dir-rtl-hide" tabindex="-1"><i class="icon fa fa-chevron-right fa-fw " aria-hidden="true" tabindex="-1"></i></span>
<span class="dir-ltr-hide" tabindex="-1"><i class="icon fa fa-chevron-left fa-fw " aria-hidden="true" tabindex="-1"></i></span>
<span class="sr-only" tabindex="-1">Развернуть</span>
</span>
<span class="expanded-icon icon-no-margin mr-1" title="Свернуть" tabindex="-1">
<i class="icon fa fa-chevron-down fa-fw " aria-hidden="true" tabindex="-1"></i>
<span class="sr-only" tabindex="-1">Свернуть</span>
</span>
</a>
<a href="https://sysahelper.ru/course/view.php?id=43#section-1" class="courseindex-link text-truncate" data-action="togglecourseindexsection" data-for="section_title" tabindex="-1">
Модуль Б. Настройка технических и программных средств информационно-коммуникационных систем
</a>
<span class="current-badge badge badge-primary ml-2 px-2 rounded-pill" tabindex="-1">
Выделено
</span>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</div>
<div id="courseindexcollapse1" class="courseindex-item-content collapse show" aria-labelledby="courseindexsection1" role="group" tabindex="-1">
<ul class="courseindex-sectioncontent unlist" data-for="cmlist" data-id="569" role="group" tabindex="-1">
<li class="courseindex-item
d-flex
" id="course-index-cm-778" data-for="cm" data-id="778" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/url/view.php?id=778" data-for="cm_name" tabindex="-1">
Текст задание
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
" id="course-index-cm-704" data-for="cm" data-id="704" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=704" data-for="cm_name" tabindex="-1">
Виртуальный стенд
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
" id="course-index-cm-719" data-for="cm" data-id="719" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=719" data-for="cm_name" tabindex="-1">
Используемая таблица адресации
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
" id="course-index-cm-705" data-for="cm" data-id="705" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=705" data-for="cm_name" tabindex="-1">
Настройка виртуальной машины ISP
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-720" data-for="cm" data-id="720" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=720" data-for="cm_name" tabindex="-1">
1. Настройка имён и IP-адресации на устройствах&nbsp;rtr-cod и rtr-a
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-724" data-for="cm" data-id="724" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=724" data-for="cm_name" tabindex="-1">
2. Подход к настройке fw-cod
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-722" data-for="cm" data-id="722" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=722" data-for="cm_name" tabindex="-1">
3. Настройка маршрутизации BGP на rtr-cod
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-721" data-for="cm" data-id="721" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=721" data-for="cm_name" tabindex="-1">
4. Настройка туннелей между офисом «а» и «cod»
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-725" data-for="cm" data-id="725" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=725" data-for="cm_name" tabindex="-1">
5. Настройка доступа в Интернет
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-726" data-for="cm" data-id="726" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=726" data-for="cm_name" tabindex="-1">
6. Настройка динамической маршрутизации между офисом «a» и «cod»
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-727" data-for="cm" data-id="727" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=727" data-for="cm_name" tabindex="-1">
7. Настройка коммутации между sw1-a и sw2-a
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-728" data-for="cm" data-id="728" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=728" data-for="cm_name" tabindex="-1">
8. Настройка доступа к веб-интерфейсу fw-cod и лицензирование
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-729" data-for="cm" data-id="729" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=729" data-for="cm_name" tabindex="-1">
9. Создание интерфейсов типа VLAN на fw-cod для маршутизации между VLAN
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-730" data-for="cm" data-id="730" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=730" data-for="cm_name" tabindex="-1">
10. Настройка коммутации между sw1-cod и sw2-cod
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-731" data-for="cm" data-id="731" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=731" data-for="cm_name" tabindex="-1">
11. Настройка имён и IP-адресов на всех остальных устройствах
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-732" data-for="cm" data-id="732" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=732" data-for="cm_name" tabindex="-1">
12. Настройка административного доступа (RADIUS)
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-733" data-for="cm" data-id="733" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=733" data-for="cm_name" tabindex="-1">
13. Настройка синхронизации времени между сетевыми устройствами
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-734" data-for="cm" data-id="734" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=734" data-for="cm_name" tabindex="-1">
14. Настройка службы доменных имен в COD-е
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-735" data-for="cm" data-id="735" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=735" data-for="cm_name" tabindex="-1">
15. Развёртывание контроллера домена на базе SambaAD
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-736" data-for="cm" data-id="736" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=736" data-for="cm_name" tabindex="-1">
16. Настройка службы доменных имен в OFFICE
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-737" data-for="cm" data-id="737" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=737" data-for="cm_name" tabindex="-1">
17. Настройка центра сертификации
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-772" data-for="cm" data-id="772" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=772" data-for="cm_name" tabindex="-1">
18. Настройка сервера баз данных
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-773" data-for="cm" data-id="773" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=773" data-for="cm_name" tabindex="-1">
19. Настройка устройства хранения данных (iSCSI)
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-774" data-for="cm" data-id="774" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=774" data-for="cm_name" tabindex="-1">
20. Настройка устройства хранения данных (LVM)
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-775" data-for="cm" data-id="775" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=775" data-for="cm_name" tabindex="-1">
21. Настройка устройства хранения данных (NFS)
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-776" data-for="cm" data-id="776" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=776" data-for="cm_name" tabindex="-1">
22. Настройка системы мониторинга
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-777" data-for="cm" data-id="777" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=777" data-for="cm_name" tabindex="-1">
23. Настройка IP телефонии
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
</ul>
</div>
</div>
<div class="courseindex-section " id="course-index-section-570" data-for="section" data-id="570" data-number="2" role="treeitem" aria-owns="courseindexcollapse2" tabindex="-1" aria-selected="false">
<div class="courseindex-item d-flex
courseindex-section-title" id="courseindexsection2" data-for="section_item" tabindex="-1">
<a data-toggle="collapse" href="#courseindexcollapse2" class="courseindex-chevron icons-collapse-expand " aria-expanded="true" aria-controls="courseindexcollapse2" tabindex="-1">
<span class="collapsed-icon icon-no-margin mr-1" title="Развернуть" tabindex="-1">
<span class="dir-rtl-hide" tabindex="-1"><i class="icon fa fa-chevron-right fa-fw " aria-hidden="true" tabindex="-1"></i></span>
<span class="dir-ltr-hide" tabindex="-1"><i class="icon fa fa-chevron-left fa-fw " aria-hidden="true" tabindex="-1"></i></span>
<span class="sr-only" tabindex="-1">Развернуть</span>
</span>
<span class="expanded-icon icon-no-margin mr-1" title="Свернуть" tabindex="-1">
<i class="icon fa fa-chevron-down fa-fw " aria-hidden="true" tabindex="-1"></i>
<span class="sr-only" tabindex="-1">Свернуть</span>
</span>
</a>
<a href="https://sysahelper.ru/course/view.php?id=43#section-2" class="courseindex-link text-truncate" data-action="togglecourseindexsection" data-for="section_title" tabindex="-1">
Модуль В. Обеспечение отказоустойчивости
</a>
<span class="current-badge badge badge-primary ml-2 px-2 rounded-pill" tabindex="-1">
Выделено
</span>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</div>
<div id="courseindexcollapse2" class="courseindex-item-content collapse show" aria-labelledby="courseindexsection2" role="group" tabindex="-1">
<ul class="courseindex-sectioncontent unlist" data-for="cmlist" data-id="570" role="group" tabindex="-1">
<li class="courseindex-item
d-flex
" id="course-index-cm-779" data-for="cm" data-id="779" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=779" data-for="cm_name" tabindex="-1">
1. Подготовка машины Cloud-ADM
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-782" data-for="cm" data-id="782" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=782" data-for="cm_name" tabindex="-1">
1.1. Установка Terraform на Cloud-ADM
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-783" data-for="cm" data-id="783" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=783" data-for="cm_name" tabindex="-1">
1.2. Установка OpenStack CLI на Cloud-ADM
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
indented " id="course-index-cm-784" data-for="cm" data-id="784" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=784" data-for="cm_name" tabindex="-1">
1.3. Установка Ansible на Cloud-ADM
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
" id="course-index-cm-780" data-for="cm" data-id="780" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=780" data-for="cm_name" tabindex="-1">
2. Project_01
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item
d-flex
" id="course-index-cm-781" data-for="cm" data-id="781" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=781" data-for="cm_name" tabindex="-1">
3. Project_02
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
<li class="courseindex-item d-flex pageitem" id="course-index-cm-785" data-for="cm" data-id="785" role="treeitem" tabindex="-1" aria-selected="false">
<span class="completioninfo" data-for="cm_completion" data-value="NaN" tabindex="-1"></span>
<a class="courseindex-link text-truncate" href="https://sysahelper.ru/mod/page/view.php?id=785" data-for="cm_name" tabindex="-1">
3. Project_03
</a>
<span class="courseindex-locked ml-1" data-for="cm_name" tabindex="-1">
<i class="icon fa fa-lock fa-fw " aria-hidden="true" tabindex="-1"></i>
</span>
<span class="dragicon ml-auto" tabindex="-1"><i class="icon fa fa-arrows fa-fw " aria-hidden="true" tabindex="-1"></i></span>
</li>
</ul>
</div>
</div>
</div>
</div>
</nav>
</div>
</div>
<div id="page" data-region="mainpage" data-usertour="scroller" class="drawers show-drawer-left drag-container">
<header id="page-header" class="moove-container-fluid">
<div class="d-flex flex-wrap">
<div class="ml-auto d-flex">
</div>
<div id="course-header">
</div>
</div>
<div class="d-sm-flex align-items-center">
<div class="mr-auto">
<div class="page-context-header"><div class="page-header-image mr-2"><div class="content activityiconcontainer icon-size-6 modicon_page"><img class="icon activityicon " aria-hidden="true" src="REG26_%203.%20Project_03%20_%20sysahelper_files/monologo.svg" alt=""></div></div><div class="page-header-headings"><h1 class="h2">3. Project_03</h1></div></div>
</div>
<div class="header-actions-container ml-auto" data-region="header-actions-container">
</div>
<div class="d-none d-md-block" id="page-navbar">
<nav aria-label="Панель навигации">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="https://sysahelper.ru/course/view.php?id=43#section-2" title="REGION2026">REG26</a>
</li>
<li class="breadcrumb-item"><span>3. Project_03</span></li>
</ol>
</nav>
</div>
</div>
</header>
<div id="topofscroll" class="main-inner">
<div class="drawer-toggles d-flex">
<div class="drawer-toggler drawer-left-toggle open-nav d-print-none">
<button class="btn icon-no-margin" data-toggler="drawers" data-action="toggle" data-target="theme_boost-drawers-courseindex" data-toggle="tooltip" data-placement="right" title="Открыть оглавление курса">
<span class="sr-only">Открыть оглавление курса</span>
<i class="icon fa fa-list fa-fw " aria-hidden="true"></i>
</button>
</div>
</div>
<div id="page-content" class="d-print-block">
<div id="region-main-box">
<section id="region-main" aria-label="Содержимое">
<span class="notifications" id="user-notifications"></span>
<span id="maincontent"></span>
<div class="activity-header" data-for="page-activity-header">
<span class="sr-only">Требуемые условия завершения</span>
<div data-region="activity-information" data-activityname="3. Project_03" class="activity-information">
</div>
</div>
<div role="main"><div class="box py-3 generalbox center clearfix"><div class="no-overflow"><h3>Задание:</h3>
<p>a. &nbsp; &nbsp;Любым способом разверните недостающие виртуальные
машины в облаке в соответствие с топологией (см. Топология Project_03).</p>
<ol>
<li>Характеристики виртуальных машин:
<ol>
<li>master01: 1vCPU, 1 ГБ ОЗУ, 10 ГБ размер диска.</li>
<li>worker01: 1vCPU, 1 ГБ ОЗУ, 10 ГБ размер диска.</li>
<li>worker02: 1vCPU, 1 ГБ ОЗУ, 10 ГБ размер</li>
</ol>
</li>
<li>Образ операционной системы: alt-p11-cloud-x86_64.qcow2.</li>
</ol>
<p>b. &nbsp; &nbsp;На развёрнутых виртуальных машинах реализуйте следующий функционал:</p>
<ol>
<li>Сформируйте кластер Docker Swarm.<br>
<ol>
<li>Используйте ВМ master01 в качестве менеджера кластера, worker01 и worker02 - в качестве исполнителей.</li>
<li>Запускать контейнеры на менеджере запрещено.</li>
</ol>
</li>
<li>Разместите в кластере Docker Swarm service для организации собственного хранилища образов контейнеров:<br>
<ol>
<li>В качестве образа используйте registry:3</li>
<li>Локальное хранилище образов должно быть доступно со всех узлов кластера на порту 5000</li>
</ol>
</li>
<li>Разместите в кластере Docker Swarm stack для организации работы приложения (см. Приложение Project_03)<br>
<ol>
<li>В качестве имени для stack используйте school-site-project</li>
<li>Приложение должно быть доступно с Cloud-ADM по <a href="http://school-site.au.team/" class="_blanktarget">http://school-site.au.team</a> и <a href="https://school-site.au.team/" class="_blanktarget">https://school-site.au.team</a></li>
<li>В случае достапу по https, проблем с сертификатом возникать недолжно.</li>
</ol>
</li>
<li>На данный момент это просто статический сайт, но стоит предусмотреть возможность развёртывания таких сервисов в стеке как:
<ol>
<li>redis - для решения задач, требующих быстрой обработки данных</li>
<li>СУБД: PostgreSQL для хранения данных</li>
<li>Веб-приложение пока не умеет работать с данными сервисами, но
сервисы должны быть развёрнуты в рамках стека school-site-project для
будущей разработки</li>
</ol>
</li>
</ol>
<h3>Вариант реализации:</h3>
<h3>Cloud-ADM:</h3>
<h4>Развёртывание недостающих виртуальных машин</h4>
<ul>
<li>Допустимы любые способы, в том числе и ручное создание ВМ</li>
<li>Модернизирует ранее написанные файлы для&nbsp;<strong>Terraform</strong> чтобы ускорить процесс создания ВМ</li>
</ul>
<pre class="language-markup"><code>cd ~/Projects/</code></pre>
<pre class="language-markup"><code>mkdir -p Project_03/terraform</code></pre>
<pre class="language-markup"><code>cd Project_03/terraform</code></pre>
<ul>
<li>За основу возьмём файлы из&nbsp;<strong>Project02</strong>:</li>
</ul>
<pre class="language-markup"><code>cp ~/Projects/Project_02/terraform/provider.tf ./</code></pre>
<pre class="language-markup"><code>cp ~/Projects/Project_02/terraform/cloud-init.yml ./</code></pre>
<pre class="language-markup"><code>cp ~/Projects/Project_02/terraform/network.tf ./</code></pre>
<pre class="language-markup"><code>cp ~/Projects/Project_02/terraform/vm.tf ./</code></pre>
<ul>
<li>Инициализируем текущий каталог для работы с <strong>Terraform</strong>:</li>
</ul>
<pre id="yui_3_18_1_1_1764077371530_237" class="language-markup"><code>terraform init</code></pre>
<ul>
<li>Модернизируем файл <strong>network.tf</strong>&nbsp;в текущей директории для&nbsp;<strong>Project03</strong>:</li>
</ul>
<pre class="language-markup"><code>resource "openstack_networking_port_v2" "port_vm_master01" {
name = "port_master01"
network_id = "61845892-f9cc-4fde-962c-34b59425a74d"
admin_state_up = true
fixed_ip {
subnet_id = "13592ca4-8782-410b-9bcc-90810ccab6fe"
ip_address = "192.168.1.107"
}
}
resource "openstack_networking_port_v2" "port_vm_worker01" {
name = "port_worker01"
network_id = "61845892-f9cc-4fde-962c-34b59425a74d"
admin_state_up = true
fixed_ip {
subnet_id = "13592ca4-8782-410b-9bcc-90810ccab6fe"
ip_address = "192.168.1.108"
}
}
resource "openstack_networking_port_v2" "port_vm_worker02" {
name = "port_worker02"
network_id = "61845892-f9cc-4fde-962c-34b59425a74d"
admin_state_up = true
fixed_ip {
subnet_id = "13592ca4-8782-410b-9bcc-90810ccab6fe"
ip_address = "192.168.1.109"
}
}
</code></pre>
<ul>
<li>Модернизируем файл <strong>vm.tf</strong>&nbsp;в текущей директории для&nbsp;<strong>Project03</strong>:</li>
</ul>
<pre class="language-markup"><code>resource "openstack_compute_instance_v2" "master01" {
name = "master01"
flavor_id = "03bf1b85-2f5f-4ada-a07b-8b994b6dcb57"
user_data = file("cloud-init.yml")
block_device {
uuid = "827e08fa-fd3c-41cd-92ca-845bb5018478"
source_type = "image"
volume_size = "10"
boot_index = 0
destination_type = "volume"
delete_on_termination = true
}
network {
port = openstack_networking_port_v2.port_vm_master01.id
}
}
resource "openstack_compute_instance_v2" "worker01" {
name = "worker01"
flavor_id = "03bf1b85-2f5f-4ada-a07b-8b994b6dcb57"
user_data = file("cloud-init.yml")
block_device {
uuid = "827e08fa-fd3c-41cd-92ca-845bb5018478"
source_type = "image"
volume_size = "10"
boot_index = 0
destination_type = "volume"
delete_on_termination = true
}
network {
port = openstack_networking_port_v2.port_vm_worker01.id
}
}
resource "openstack_compute_instance_v2" "worker02" {
name = "worker02"
flavor_id = "03bf1b85-2f5f-4ada-a07b-8b994b6dcb57"
user_data = file("cloud-init.yml")
block_device {
uuid = "827e08fa-fd3c-41cd-92ca-845bb5018478"
source_type = "image"
volume_size = "10"
boot_index = 0
destination_type = "volume"
delete_on_termination = true
}
network {
port = openstack_networking_port_v2.port_vm_worker02.id
}
}</code></pre>
<ul>
<li>Запускаем автоматическое развёртывания ВМ для&nbsp;<strong>Project03</strong>&nbsp;через&nbsp;<strong>Terraform</strong>:</li>
</ul>
<pre class="language-markup"><code>terraform apply</code></pre>
<ul>
<li>Результат:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image.png"></p>
<ul id="yui_3_18_1_1_1764077371530_278">
<li id="yui_3_18_1_1_1764077371530_277">Результат в веб-интерфейсе облака:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(1).png"></p>
<ul id="yui_3_18_1_1_1764077371530_284">
<li id="yui_3_18_1_1_1764077371530_283">Для удобства приводим конфигурационный файл&nbsp;<strong>/etc/hosts</strong> к следующему виду:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(2).png"></p>
<ul id="yui_3_18_1_1_1764077371530_290">
<li>Проверяем доступ до созданных ВМ:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(3).png"></p>
<p>&nbsp;</p>
<h3>master01, worker01 и worker02:</h3>
<ul>
<li>Установим пакет&nbsp;<strong>docker-engine</strong>:</li>
</ul>
<pre class="language-markup"><code>apt-get update &amp;&amp; apt-get install -y docker-engine</code></pre>
<ul>
<li>Включить и добавить в автозагрузку службу&nbsp;<strong>docker</strong>:</li>
</ul>
<pre class="language-markup"><code>systemctl enable --now docker</code></pre>
<ul>
<li>Внести изменения в конфигурационный файл&nbsp;<strong>/etc/docker/daemon.json</strong>:
<ul>
<li>привести параметр&nbsp;<strong>live-restore</strong> к следующему виду:</li>
</ul>
</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(4).png"></p>
<ul>
<li>Перезагрузить службу&nbsp;<strong>docker</strong> для применения изменений:</li>
</ul>
<pre class="language-markup"><code>systemctl restart docker</code></pre>
<p>&nbsp;</p>
<h3>master01:</h3>
<ul>
<li>Создаём кластер Docker Swarm:</li>
</ul>
<pre class="language-markup"><code>docker swarm init</code></pre>
<ul>
<li>Результат:
<ul>
<li>команда генерирует два случайных токена, рабочий токен и токен&nbsp;менеджера</li>
<li>когда добавляется новый узел к swarm, узел присоединяется как рабочий&nbsp;или управляющий узел на основе токена</li>
</ul>
</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(5).png" width="1200" height="228"></p>
<p>&nbsp;</p>
<h3>worker01 и worker02:</h3>
<ul>
<li>Добавляем узлы в кластер Docker Swarm:
<ul>
<li>worker01:</li>
</ul>
</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(6).png" width="1201" height="98"></p>
<ul>
<li style="list-style-type: none;">
<ul>
<li>worker02:</li>
</ul>
</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(7).png" width="1205" height="75"></p>
<p>&nbsp;</p>
<h3>master01:</h3>
<ul>
<li>Проверить наличие нод в кластере:</li>
</ul>
<pre class="language-markup"><code>docker node ls</code></pre>
<ul>
<li>Результат:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(8).png"></p>
<ul>
<li>Запускаем сервис для локального хранилища на базе образа&nbsp;<strong>registry:3</strong>:</li>
</ul>
<pre class="language-markup"><code>docker service create \
--name registry \
--publish published=5000,target=5000 \
--constraint node.role==worker \
registry:3</code></pre>
<ul>
<li>Проверьте статус запущенного сервиса можно с помощью&nbsp;<strong>docker service ls</strong>:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(10).png"></p>
<ul>
<li>Проверить что задача развернулась именно на ноде с ролью <strong>worker</strong> можно с помощью команды <strong>docker service ps registry</strong>:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(11).png"></p>
<p>&nbsp;</p>
<h3>Cloud-ADM:</h3>
<ul>
<li>Любым возможным способом скачиваем файлы приложения&nbsp;<strong>Project03</strong> и передаём их на&nbsp;<strong>master01</strong>:</li>
</ul>
<pre class="language-markup"><code>scp Project03.zip master01:~/</code></pre>
<p>&nbsp;</p>
<h3>master01:</h3>
<ul>
<li>Устанавливаем пакет&nbsp;<strong>unzip</strong> и&nbsp;<strong>docker-compose-v2</strong>:
<ul>
<li>Docker Compose будет использоваться для тестирования сборки и
запуска прилодения с последующим добавлением его в ранее развёрнутое
локальное хранилище</li>
</ul>
</li>
</ul>
<pre class="language-markup"><code>apt-get install -y unzip docker-compose-v2</code></pre>
<ul>
<li>Расспаковываем архив с приложением и переходим в директорию:</li>
</ul>
<pre class="language-markup"><code>unzip /home/altlinux/Project03.zip -d ./</code></pre>
<pre class="language-markup"><code>cd School-site-project-main/</code></pre>
<ul>
<li>Создаём максимально минимальный&nbsp;<strong>Dockerfile</strong> для сборки образа приложения:</li>
</ul>
<pre class="language-markup"><code>FROM nginx:1.29.3-alpine
COPY . /usr/share/nginx/html</code></pre>
<ul>
<li>Создадим файл <strong>compose.yaml</strong> и укажем в нём следующее содержимое:
<ul>
<li>для сборки образа и тестирования приложения</li>
<li>образ называем именно так, чтобы в дальнейшем можно было его добавить в ранее развёрнутое локальное хранилище обращов</li>
<li>можно использовать 127.0.0.1, всё остальное за вас сделает маршрутизация в рамках кластера Docker Swarm</li>
</ul>
</li>
</ul>
<pre class="language-markup"><code>services:
app:
image: 127.0.0.1:5000/app
build: .
ports:
- "80:80"</code></pre>
<ul>
<li>Выполним сборку и запуск контейнера для проверки работоспособности:</li>
</ul>
<pre class="language-markup"><code>docker compose up -d</code></pre>
<ul>
<li>Проверить сборку образа можно с помощью команды&nbsp;<strong>docker image ls</strong>:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(12).png"></p>
<ul>
<li>Проверить запущенный контейнер можно с помощью команды&nbsp;<strong>docker compose ps</strong>:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(13).png"></p>
<ul>
<li>Проверить работоспособность веб-приложения с&nbsp;<strong>Cloud-ADM</strong> в браузере:
<ul>
<li>обращаясь в веб-браузере на IP-адрес любой из нод:</li>
</ul>
</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(14).png"></p>
<ul>
<li>Удаляем всё что было использовано для тестового запуска:</li>
</ul>
<pre class="language-markup"><code>docker compose down --volumes</code></pre>
<pre class="language-markup"><code>docker image rm 127.0.0.1:5000/app</code></pre>
<p>&nbsp;</p>
<h3>Cloud-ADM:</h3>
<ul>
<li>Сгенерируем необходимые файлы сертификатов, через ранее развёрнутый ЦА:
<ul>
<li>создаём ключ:</li>
</ul>
</li>
</ul>
<pre class="language-markup"><code>openssl genrsa -out site.key 2048</code></pre>
<ul>
<li style="list-style-type: none;">
<ul>
<li>создаём запрос:</li>
</ul>
</li>
</ul>
<pre class="language-markup"><code>openssl req -key site.key -new -out site.csr</code></pre>
<ul>
<li>Результат:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(15).png"></p>
<ul>
<li>Файл с расширениями для сертификата <strong>site.ext</strong>:</li>
</ul>
<pre id="yui_3_18_1_1_1764049198937_45" class="language-markup"><code>cat &lt;&lt;EOF &gt; site.ext
authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
subjectAltName=@alt_names
[alt_names]
DNS.1=school-site.au.team
IP.1=192.168.1.107
EOF</code></pre>
<ul>
<li>Выпускаем сертификат:</li>
</ul>
<pre id="yui_3_18_1_1_1764049198937_46" class="language-markup"><code>openssl x509 -req -CA Projects/Project_01/ansible/files/ca.crt -CAkey Projects/Project_01/ansible/files/ca.key -in site.csr -out site.crt -days 365 -CAcreateserial -extfile site.ext</code></pre>
<ul>
<li>Передаём ключ и сертификат на&nbsp;<strong>master01</strong>:</li>
</ul>
<pre class="language-markup"><code>scp site.key master01:~/</code></pre>
<pre class="language-markup"><code>scp site.crt master01:~/</code></pre>
<p>&nbsp;</p>
<h3>master01:</h3>
<ul>
<li>Копируем ключ и сертификат в директорию с файлами приложения:</li>
</ul>
<pre class="language-markup"><code>cp /home/altlinux/site.crt ./</code></pre>
<pre class="language-markup"><code>cp /home/altlinux/site.key ./</code></pre>
<ul>
<li>Создаём свой конфигурационный файл для веб-сервера&nbsp;<strong>nginx, </strong>например <strong>custom.conf</strong>:</li>
</ul>
<pre class="language-markup"><code>server {
listen 80;
server_name school-site.au.team;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
server {
listen 443 ssl;
server_name school-site.au.team;
ssl_certificate /etc/nginx/site.crt;
ssl_certificate_key /etc/nginx/site.key;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}</code></pre>
<ul>
<li>Модернизируем ранее написанный&nbsp;<strong>Dockerfile</strong> для сборки образа с приложением:</li>
</ul>
<pre class="language-markup"><code>FROM nginx:1.29.3-alpine
COPY site.crt site.key /etc/nginx/
COPY custom.conf /etc/nginx/conf.d/default.conf
COPY . /usr/share/nginx/html</code></pre>
<ul>
<li>Модернизируем ранее написанный&nbsp;<strong>compose.yaml</strong>:</li>
</ul>
<pre class="language-markup"><code>services:
app:
image: 127.0.0.1:5000/app
build: .
ports:
- "80:80"
- "443:443"</code></pre>
<ul>
<li>Выполним сборку и запуск контейнера для проверки работоспособности:</li>
</ul>
<pre class="language-markup"><code>docker compose up -d</code></pre>
<ul>
<li>Проверить доступ к приложению с&nbsp;<strong>Cloud</strong><strong>-ADM</strong> как по&nbsp;<strong>http</strong> так и по&nbsp;<strong>https</strong></li>
</ul>
<ul>
<li>Удаляем всё что было использовано для тестового запуска:</li>
</ul>
<pre class="language-markup"><code>docker compose down --volumes</code></pre>
<ul>
<li>Отправляем средствами Docker Compose образ нашего приложения в ранее развёрнутое хранилище образов:</li>
</ul>
<pre class="language-markup"><code>docker compose push</code></pre>
<ul>
<li>Результат:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(17).png"></p>
<ul>
<li>Удаляем образ собранный локально:</li>
</ul>
<pre class="language-markup"><code>docker image rm 127.0.0.1:5000/app</code></pre>
<ul>
<li>Модернизируем ранее написанный&nbsp;<strong>compose.yaml</strong>:</li>
</ul>
<pre class="language-markup"><code>services:
app:
image: 127.0.0.1:5000/app
ports:
- "80:80"
- "443:443"
deploy:
placement:
constraints:
- "node.role==worker"
redis:
image: redis:8.4.0-alpine
deploy:
placement:
constraints:
- "node.role==worker"
db:
image: postgres:18.1-alpine3.22
environment:
POSTGRES_PASSWORD: "P@ssw0rd"
deploy:
placement:
constraints:
- "node.role==worker"</code></pre>
<ul>
<li>Запускаем развёртывание стека с именем&nbsp;<strong>school-site-project</strong>:</li>
</ul>
<pre class="language-markup"><code>docker stack deploy --compose-file compose.yaml school-site-project</code></pre>
<ul>
<li>Проверить созданные стек в кластере можно с помощью команды&nbsp;<strong>docker stack ls</strong>:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(18).png"></p>
<ul>
<li>Проверить созданные сервисы в рамках стека можно с помощью команды&nbsp;<strong>docker stack services school-site-project</strong>:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(19).png"></p>
<ul>
<li>Проверить на каких нодах запустились задачи сервивов в рамках стека можно с помощью команды&nbsp;<strong>docker stack ps school-site-project</strong>:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(20).png"></p>
<p>&nbsp;</p>
<h3>Cloud-ADM:</h3>
<ul>
<li>Добавляем в файл&nbsp;<strong>/etc/hosts</strong> следующую запись:</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(16).png"></p>
<ul>
<li>Проверяем доступ к приложению:
<ul>
<li style="font-weight: bold;"><strong><a href="http://school-site.au.team/" class="_blanktarget">http://school-site.au.team:</a></strong></li>
</ul>
</li>
</ul>
<p><img src="REG26_%203.%20Project_03%20_%20sysahelper_files/image%20(21).png"></p></div></div><div class="modified">Последнее изменение: среда, 26 ноября 2025, 10:53</div></div>
</section>
</div>
</div>
</div>
<div class="moove-container-fluid p-0 mb-4">
<div class="card activity-navigation mdl-bottom">
<div class="card-body">
<div class="row">
<div class="col-md-4"> <div id="prev-activity">
<div class="larrow">
<i class="icon-arrow-left"></i>
</div>
<div class="text">
<span class="nav-guide">
Предыдущий элемент курса
</span>
<a href="https://sysahelper.ru/mod/page/view.php?id=781&amp;forceview=1" id="prev-activity-link" class="btn btn-link">3. Project_02</a>
</div>
</div>
</div>
<div class="col-md-4"> <div class="mdl-align">
<div class="urlselect">
<form method="post" action="https://sysahelper.ru/course/jumpto.php" class="form-inline" id="url_select_f69fc91d8b01d24">
<input type="hidden" name="sesskey" value="I78ejZljGV">
<label for="jump-to-activity" class="sr-only">
Перейти на...
</label>
<select id="jump-to-activity" class="custom-select urlselect" name="jump">
<option value="" selected="selected">Перейти на...</option>
<option value="/mod/folder/view.php?id=701&amp;forceview=1">Конкурсная документация (в исходном виде)</option>
<option value="/mod/url/view.php?id=778&amp;forceview=1">Текст задание</option>
<option value="/mod/page/view.php?id=704&amp;forceview=1">Виртуальный стенд</option>
<option value="/mod/page/view.php?id=719&amp;forceview=1">Используемая таблица адресации</option>
<option value="/mod/page/view.php?id=705&amp;forceview=1">Настройка виртуальной машины ISP</option>
<option value="/mod/page/view.php?id=720&amp;forceview=1">1. Настройка имён и IP-адресации на устройствах&nbsp;rtr-cod и rtr-a</option>
<option value="/mod/page/view.php?id=724&amp;forceview=1">2. Подход к настройке fw-cod</option>
<option value="/mod/page/view.php?id=722&amp;forceview=1">3. Настройка маршрутизации BGP на rtr-cod</option>
<option value="/mod/page/view.php?id=721&amp;forceview=1">4. Настройка туннелей между офисом «а» и «cod»</option>
<option value="/mod/page/view.php?id=725&amp;forceview=1">5. Настройка доступа в Интернет</option>
<option value="/mod/page/view.php?id=726&amp;forceview=1">6. Настройка динамической маршрутизации между офисом «a» и «cod»</option>
<option value="/mod/page/view.php?id=727&amp;forceview=1">7. Настройка коммутации между sw1-a и sw2-a</option>
<option value="/mod/page/view.php?id=728&amp;forceview=1">8. Настройка доступа к веб-интерфейсу fw-cod и лицензирование</option>
<option value="/mod/page/view.php?id=729&amp;forceview=1">9. Создание интерфейсов типа VLAN на fw-cod для маршутизации между VLAN</option>
<option value="/mod/page/view.php?id=730&amp;forceview=1">10. Настройка коммутации между sw1-cod и sw2-cod</option>
<option value="/mod/page/view.php?id=731&amp;forceview=1">11. Настройка имён и IP-адресов на всех остальных устройствах</option>
<option value="/mod/page/view.php?id=732&amp;forceview=1">12. Настройка административного доступа (RADIUS)</option>
<option value="/mod/page/view.php?id=733&amp;forceview=1">13. Настройка синхронизации времени между сетевыми устройствами</option>
<option value="/mod/page/view.php?id=734&amp;forceview=1">14. Настройка службы доменных имен в COD-е</option>
<option value="/mod/page/view.php?id=735&amp;forceview=1">15. Развёртывание контроллера домена на базе SambaAD</option>
<option value="/mod/page/view.php?id=736&amp;forceview=1">16. Настройка службы доменных имен в OFFICE</option>
<option value="/mod/page/view.php?id=737&amp;forceview=1">17. Настройка центра сертификации</option>
<option value="/mod/page/view.php?id=772&amp;forceview=1">18. Настройка сервера баз данных</option>
<option value="/mod/page/view.php?id=773&amp;forceview=1">19. Настройка устройства хранения данных (iSCSI)</option>
<option value="/mod/page/view.php?id=774&amp;forceview=1">20. Настройка устройства хранения данных (LVM)</option>
<option value="/mod/page/view.php?id=775&amp;forceview=1">21. Настройка устройства хранения данных (NFS)</option>
<option value="/mod/page/view.php?id=776&amp;forceview=1">22. Настройка системы мониторинга</option>
<option value="/mod/page/view.php?id=777&amp;forceview=1">23. Настройка IP телефонии</option>
<option value="/mod/page/view.php?id=779&amp;forceview=1">1. Подготовка машины Cloud-ADM</option>
<option value="/mod/page/view.php?id=782&amp;forceview=1">1.1. Установка Terraform на Cloud-ADM</option>
<option value="/mod/page/view.php?id=783&amp;forceview=1">1.2. Установка OpenStack CLI на Cloud-ADM</option>
<option value="/mod/page/view.php?id=784&amp;forceview=1">1.3. Установка Ansible на Cloud-ADM</option>
<option value="/mod/page/view.php?id=780&amp;forceview=1">2. Project_01</option>
<option value="/mod/page/view.php?id=781&amp;forceview=1">3. Project_02</option>
</select>
<noscript>
<input type="submit" class="btn btn-secondary ml-1" value="Применить">
</noscript>
</form>
</div>
</div>
</div>
<div class="col-md-4"> <div id="next-activity">
</div>
</div>
</div>
</div>
</div>
</div>
<footer id="page-footer">
<div class="moove-container-fluid footer-columns">
<div class="row">
<div class="col-md-4 column-left">
<div class="contact">
<h3 class="footer-title">Обратная связь</h3>
<ul>
</ul>
</div>
<div class="socialnetworks">
<h3 class="footer-title">Подпишитесь</h3>
<ul class="mb-0">
</ul>
</div>
</div>
<div class="col-md-4 column-center">
<div class="logininfo">Вы используете гостевой доступ (<a href="https://sysahelper.ru/login/index.php">Вход</a>)</div>
<div class="tool_dataprivacy"><a href="https://sysahelper.ru/admin/tool/dataprivacy/summary.php">Сводка хранения данных</a></div>
<div class="tool_usertours-resettourcontainer"></div>
</div>
<div class="col-md-4 column-right">
</div>
</div>
</div>
<div class="footer-content-debugging footer-dark bg-dark text-light">
<div class="moove-container-fluid footer-dark-inner">
</div>
</div>
<div data-region="footer-container-popover">
<button class="btn btn-icon bg-secondary icon-no-margin btn-footer-popover" data-action="footer-popover" aria-label="Показать нижний колонтитул" data-original-title="" title="">
<i class="icon fa fa-question fa-fw " aria-hidden="true"></i>
</button>
</div>
<div class="footer-content-popover container" data-region="footer-content-popover">
<div class="footer-section p-3">
<div>На платформе <a href="https://moodle.com/">Moodle</a></div>
</div>
</div>
<div class="copyright">
<div class="madeby">
<p>Тема оформления сайта разработана</p>
<a href="https://conecti.me/">
<img src="REG26_%203.%20Project_03%20_%20sysahelper_files/logo_conectime.svg" alt="Conecti.me" style="height: 40px;">
</a>
</div>
</div>
</footer>
<!-- Yandex.Metrika counter -->
<script type="text/javascript">
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();
for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(96198090, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true
});
</script>
<noscript><div><img src="https://mc.yandex.ru/watch/96198090" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
<!-- /Yandex.Metrika counter --><script>
//<![CDATA[
var require = {
baseUrl : 'https://sysahelper.ru/lib/requirejs.php/1703880200/',
// We only support AMD modules with an explicit define() statement.
enforceDefine: true,
skipDataMain: true,
waitSeconds : 0,
paths: {
jquery: 'https://sysahelper.ru/lib/javascript.php/1703880200/lib/jquery/jquery-3.7.1.min',
jqueryui: 'https://sysahelper.ru/lib/javascript.php/1703880200/lib/jquery/ui-1.13.2/jquery-ui.min',
jqueryprivate: 'https://sysahelper.ru/lib/javascript.php/1703880200/lib/requirejs/jquery-private'
},
// Custom jquery config map.
map: {
// '*' means all modules will get 'jqueryprivate'
// for their 'jquery' dependency.
'*': { jquery: 'jqueryprivate' },
// Stub module for 'process'. This is a workaround for a bug in MathJax (see MDL-60458).
'*': { process: 'core/first' },
// 'jquery-private' wants the real jQuery module
// though. If this line was not here, there would
// be an unresolvable cyclic dependency.
jqueryprivate: { jquery: 'jquery' }
}
};
//]]>
</script>
<script src="REG26_%203.%20Project_03%20_%20sysahelper_files/javascript_004.php"></script>
<script>
//<![CDATA[
M.util.js_pending("core/first");
require(['core/first'], function() {
require(['core/prefetch'])
;
M.util.js_pending('filter_mathjaxloader/loader'); require(['filter_mathjaxloader/loader'], function(amd) {amd.configure({"mathjaxconfig":"\nMathJax.Hub.Config({\n config: [\"Accessible.js\", \"Safe.js\"],\n errorSettings: { message: [\"!\"] },\n skipStartupTypeset: true,\n messageStyle: \"none\"\n});\n","lang":"ru"}); M.util.js_complete('filter_mathjaxloader/loader');});;
require(["media_videojs/loader"], function(loader) {
loader.setUp('ru');
});;
M.util.js_pending('core_courseformat/courseeditor'); require(['core_courseformat/courseeditor'], function(amd) {amd.setViewFormat("43", {"editing":false,"supportscomponents":true,"statekey":"1772597507_1778159930","overriddenStrings":[{"component":"format_topics","key":"sectionavailability_title"},{"component":"format_topics","key":"sectiondelete_title"},{"component":"format_topics","key":"sectionsdelete_title"},{"component":"format_topics","key":"sectionsdelete_info"},{"component":"format_topics","key":"sectionmove_title"},{"component":"format_topics","key":"sectionsavailability_title"},{"component":"format_topics","key":"sectionsmove_title"},{"component":"format_topics","key":"sectionsmove_info"},{"component":"format_topics","key":"selectsection"}]}); M.util.js_complete('core_courseformat/courseeditor');});;
require(['core_courseformat/local/courseindex/placeholder'], function(component) {
component.init('course-index-placeholder');
});
;
require(['core_courseformat/local/courseindex/drawer'], function(component) {
component.init('courseindex');
});
;
M.util.js_pending('core_courseformat/local/content/activity_header'); require(['core_courseformat/local/content/activity_header'], function(amd) {amd.init(); M.util.js_complete('core_courseformat/local/content/activity_header');});;
require(['theme_moove/accessibilitybar'], function(AccessibilityBar) {
AccessibilityBar.init();
});
;
require(['core/moremenu'], function(moremenu) {
moremenu(document.querySelector('#moremenu-69fc91d8afb8b-navbar-nav'));
});
;
require(
[
'jquery',
],
function(
$
) {
var uniqid = "69fc91d8b107e69fc91d8b01d22";
var container = $('#searchinput-navbar-' + uniqid);
var opensearch = container.find('[data-action="opensearch"]');
var input = container.find('[data-region="input"]');
var submit = container.find('[data-action="submit"]');
submit.on('click', function(e) {
if (input.val() === '') {
e.preventDefault();
}
});
container.on('hidden.bs.collapse', function() {
opensearch.removeClass('d-none');
input.val('');
});
container.on('show.bs.collapse', function() {
opensearch.addClass('d-none');
});
container.on('shown.bs.collapse', function() {
input.focus();
});
});
;
require(
[
'jquery',
],
function(
$
) {
var uniqid = "69fc91d8b15ee69fc91d8b01d23";
var container = $('#searchinput-navbar-' + uniqid);
var opensearch = container.find('[data-action="opensearch"]');
var input = container.find('[data-region="input"]');
var submit = container.find('[data-action="submit"]');
submit.on('click', function(e) {
if (input.val() === '') {
e.preventDefault();
}
});
container.on('hidden.bs.collapse', function() {
opensearch.removeClass('d-none');
input.val('');
});
container.on('show.bs.collapse', function() {
opensearch.addClass('d-none');
});
container.on('shown.bs.collapse', function() {
input.focus();
});
});
;
require(['core/usermenu', 'theme_moove/accessibilitysettings'], function(UserMenu, AccessibilitySettings) {
UserMenu.init();
AccessibilitySettings.init();
});
;
require(['theme_boost/drawers']);
;
require(['theme_boost/drawers']);
;
require(['jquery', 'core/custom_interaction_events'], function($, CustomEvents) {
CustomEvents.define('#jump-to-activity', [CustomEvents.events.accessibleChange]);
$('#jump-to-activity').on(CustomEvents.events.accessibleChange, function() {
if ($(this).val()) {
$('#url_select_f69fc91d8b01d24').submit();
}
});
});
;
require(['theme_boost/footer-popover'], function(FooterPopover) {
FooterPopover.init();
});
;
M.util.js_pending('theme_boost/loader');
require(['theme_boost/loader', 'theme_boost/drawer'], function(Loader, Drawer) {
Drawer.init();
M.util.js_complete('theme_boost/loader');
});
;
M.util.js_pending('core/notification'); require(['core/notification'], function(amd) {amd.init(1165, []); M.util.js_complete('core/notification');});;
M.util.js_pending('core/log'); require(['core/log'], function(amd) {amd.setConfig({"level":"warn"}); M.util.js_complete('core/log');});;
M.util.js_pending('core/page_global'); require(['core/page_global'], function(amd) {amd.init(); M.util.js_complete('core/page_global');});;
M.util.js_pending('core/utility'); require(['core/utility'], function(amd) {M.util.js_complete('core/utility');});
M.util.js_complete("core/first");
});
//]]>
</script>
<script src="REG26_%203.%20Project_03%20_%20sysahelper_files/MathJax.js"></script>
<script>
//<![CDATA[
M.str = {"moodle":{"lastmodified":"\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435","name":"\u041d\u0430\u0437\u0432\u0430\u043d\u0438\u0435","error":"\u041e\u0448\u0438\u0431\u043a\u0430","info":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f","yes":"\u0414\u0430","no":"\u041d\u0435\u0442","cancel":"\u041e\u0442\u043c\u0435\u043d\u0430","confirm":"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c","areyousure":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b?","closebuttontitle":"\u0417\u0430\u043a\u0440\u044b\u0442\u044c","unknownerror":"\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u043e\u0448\u0438\u0431\u043a\u0430","file":"\u0424\u0430\u0439\u043b","url":"URL","collapseall":"\u0421\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0451","expandall":"\u0420\u0430\u0437\u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0432\u0441\u0451"},"repository":{"type":"\u0422\u0438\u043f","size":"\u0420\u0430\u0437\u043c\u0435\u0440","invalidjson":"\u041d\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 JSON","nofilesattached":"\u041d\u0435 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d \u043d\u0438 \u043e\u0434\u0438\u043d \u0444\u0430\u0439\u043b","filepicker":"\u0412\u044b\u0431\u043e\u0440 \u0444\u0430\u0439\u043b\u0430","logout":"\u0412\u044b\u0445\u043e\u0434","nofilesavailable":"\u041d\u0435\u0442 \u043d\u0438 \u043e\u0434\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430","norepositoriesavailable":"\u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u043d\u0438 \u043e\u0434\u043d\u043e \u0438\u0437 \u0412\u0430\u0448\u0438\u0445 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449 \u0444\u0430\u0439\u043b\u043e\u0432 \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0432\u0435\u0440\u043d\u0443\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u0444\u043e\u0440\u043c\u0430\u0442\u0435.","fileexistsdialogheader":"\u0424\u0430\u0439\u043b \u0441\u043e\u0437\u0434\u0430\u043d","fileexistsdialog_editor":"\u0424\u0430\u0439\u043b \u0441 \u044d\u0442\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u0443\u0436\u0435 \u0431\u044b\u043b \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d \u043a \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u043c\u0443 \u0442\u0435\u043a\u0441\u0442\u0443","fileexistsdialog_filemanager":"\u0424\u0430\u0439\u043b \u0441 \u044d\u0442\u0438\u043c \u0438\u043c\u0435\u043d\u0435\u043c \u0443\u0436\u0435 \u0431\u044b\u043b \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u0435\u043d","renameto":"\u041f\u0435\u0440\u0435\u0438\u043c\u0435\u043d\u043e\u0432\u0430\u0442\u044c \u0432 \u00ab{$a}\u00bb","referencesexist":"\u041d\u0430 \u044d\u0442\u043e\u0442 \u0444\u0430\u0439\u043b \u0435\u0441\u0442\u044c \u0441\u0441\u044b\u043b\u043a\u0438: {$a}","select":"\u0412\u044b\u0431\u0440\u0430\u0442\u044c"},"admin":{"confirmdeletecomments":"\u0412\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b \u0432 \u0442\u043e\u043c, \u0447\u0442\u043e \u0441\u043e\u0431\u0438\u0440\u0430\u0435\u0442\u0435\u0441\u044c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438?","confirmation":"\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435"},"debug":{"debuginfo":"\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e\u0431 \u043e\u0442\u043b\u0430\u0434\u043a\u0435","line":"\u0421\u0442\u0440\u043e\u043a\u0430","stacktrace":"\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u0442\u0435\u043a\u0430"},"langconfig":{"labelsep":":"}};
//]]>
</script>
<script>
//<![CDATA[
(function() {M.util.help_popups.setup(Y);
M.util.js_pending('random69fc91d8b01d25'); Y.on('domready', function() { M.util.js_complete("init"); M.util.js_complete('random69fc91d8b01d25'); });
})();
//]]>
</script>
</div>
</div><div id="yui3-css-stamp" style="position: absolute !important; visibility: hidden !important" class=""></div>
<div></div></body></html>