2295 lines
137 KiB
HTML
2295 lines
137 KiB
HTML
<!DOCTYPE html>
|
||
<html dir="ltr" lang="ru" xml:lang="ru" class="yui3-js-enabled"><head>
|
||
<title>REG26: 2. Project_01 | 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: 2. Project_01 | sysahelper">
|
||
<link rel="stylesheet" type="text/css" href="REG26_%202.%20Project_01%20_%20sysahelper_files/combo.css"><script async="" src="REG26_%202.%20Project_01%20_%20sysahelper_files/tag.js"></script><script charset="utf-8" id="yui_3_18_1_1_1778160100284_12" src="REG26_%202.%20Project_01%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_%202.%20Project_01%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":1160,"contextInstanceId":780,"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","moodle-core_availability-form"]},"moodle-availability_profile-form":{"requires":["base","node","event","moodle-core_availability-form"]},"moodle-mod_assign-history":{"requires":["node","transition"]},"moodle-mod_quiz-questionchooser":{"requires":["moodle-core-chooserdialogue","moodle-mod_quiz-util","querystring-parse"]},"moodle-mod_quiz-util":{"requires":["node","moodle-core-actionmenu"],"use":["moodle-mod_quiz-util-base"],"submodules":{"moodle-mod_quiz-util-base":{},"moodle-mod_quiz-util-slot":{"requires":["node","moodle-mod_quiz-util-base"]},"moodle-mod_quiz-util-page":{"requires":["node","moodle-mod_quiz-util-base"]}}},"moodle-mod_quiz-toolboxes":{"requires":["base","node","event","event-key","io","moodle-mod_quiz-quizbase","moodle-mod_quiz-util-slot","moodle-core-notification-ajaxexception"]},"moodle-mod_quiz-autosave":{"requires":["base","node","event","event-valuechange","node-event-delegate","io-form"]},"moodle-mod_quiz-quizbase":{"requires":["base","node"]},"moodle-mod_quiz-modform":{"requires":["base","node","event"]},"moodle-mod_quiz-dragdrop":{"requires":["base","node","io","dom","dd","dd-scroll","moodle-core-dragdrop","moodle-core-notification","moodle-mod_quiz-quizbase","moodle-mod_quiz-util-base","moodle-mod_quiz-util-page","moodle-mod_quiz-util-slot","moodle-course-util"]},"moodle-message_airnotifier-toolboxes":{"requires":["base","node","io"]},"moodle-filter_glossary-autolinker":{"requires":["base","node","io-base","json-parse","event-delegate","overlay","moodle-core-event","moodle-core-notification-alert","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-editor_atto-rangy":{"requires":[]},"moodle-editor_atto-editor":{"requires":["node","transition","io","overlay","escape","event","event-simulate","event-custom","node-event-html5","node-event-simulate","yui-throttle","moodle-core-notification-dialogue","moodle-editor_atto-rangy","handlebars","timers","querystring-stringify"]},"moodle-editor_atto-plugin":{"requires":["node","base","escape","event","event-outside","handlebars","event-custom","timers","moodle-editor_atto-menu"]},"moodle-editor_atto-menu":{"requires":["moodle-core-notification-dialogue","node","event","event-custom"]},"moodle-report_eventlist-eventfilter":{"requires":["base","event","node","node-event-delegate","datatable","autocomplete","autocomplete-filters"]},"moodle-report_loglive-fetchlogs":{"requires":["base","event","node","io","node-event-delegate"]},"moodle-gradereport_history-userselector":{"requires":["escape","event-delegate","event-key","handlebars","io-base","json-parse","moodle-core-notification-dialogue"]},"moodle-qbank_editquestion-chooser":{"requires":["moodle-core-chooserdialogue"]},"moodle-tool_lp-dragdrop-reorder":{"requires":["moodle-core-dragdrop"]},"moodle-assignfeedback_editpdf-editor":{"requires":["base","event","node","io","graphics","json","event-move","event-resize","transition","querystring-stringify-simple","moodle-core-notification-dialog","moodle-core-notification-alert","moodle-core-notification-warning","moodle-core-notification-exception","moodle-core-notification-ajaxexception"]},"moodle-atto_accessibilitychecker-button":{"requires":["color-base","moodle-editor_atto-plugin"]},"moodle-atto_accessibilityhelper-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_align-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_bold-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_charmap-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_clear-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_collapse-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_emojipicker-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_emoticon-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_equation-button":{"requires":["moodle-editor_atto-plugin","moodle-core-event","io","event-valuechange","tabview","array-extras"]},"moodle-atto_h5p-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_html-button":{"requires":["promise","moodle-editor_atto-plugin","moodle-atto_html-beautify","moodle-atto_html-codemirror","event-valuechange"]},"moodle-atto_html-beautify":{},"moodle-atto_html-codemirror":{"requires":["moodle-atto_html-codemirror-skin"]},"moodle-atto_image-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_indent-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_italic-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_link-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_managefiles-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_managefiles-usedfiles":{"requires":["node","escape"]},"moodle-atto_media-button":{"requires":["moodle-editor_atto-plugin","moodle-form-shortforms"]},"moodle-atto_noautolink-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_orderedlist-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_recordrtc-button":{"requires":["moodle-editor_atto-plugin","moodle-atto_recordrtc-recording"]},"moodle-atto_recordrtc-recording":{"requires":["moodle-atto_recordrtc-button"]},"moodle-atto_rtl-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_strike-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_subscript-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_superscript-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_table-button":{"requires":["moodle-editor_atto-plugin","moodle-editor_atto-menu","event","event-valuechange"]},"moodle-atto_title-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_underline-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_undo-button":{"requires":["moodle-editor_atto-plugin"]},"moodle-atto_unorderedlist-button":{"requires":["moodle-editor_atto-plugin"]}}},"gallery":{"name":"gallery","base":"https:\/\/sysahelper.ru\/lib\/yuilib\/gallery\/","combine":true,"comboBase":"https:\/\/sysahelper.ru\/theme\/yui_combo.php?","ext":false,"root":"gallery\/1703880200\/","patterns":{"gallery-":{"group":"gallery"}}}},"modules":{"core_filepicker":{"name":"core_filepicker","fullpath":"https:\/\/sysahelper.ru\/lib\/javascript.php\/1703880200\/repository\/filepicker.js","requires":["base","node","node-event-simulate","json","async-queue","io-base","io-upload-iframe","io-form","yui2-treeview","panel","cookie","datatable","datatable-sort","resize-plugin","dd-plugin","escape","moodle-core_filepicker","moodle-core-notification-dialogue"]},"core_comment":{"name":"core_comment","fullpath":"https:\/\/sysahelper.ru\/lib\/javascript.php\/1703880200\/comment\/comment.js","requires":["base","io-base","node","json","yui2-animation","overlay","escape"]}},"logInclude":[],"logExclude":[],"logLevel":null};
|
||
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_%202.%20Project_01%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_%202.%20Project_01%20_%20sysahelper_files/requirejs.php"></script><script type="text/javascript" charset="utf-8" async="" data-requirecontext="_" data-requiremodule="jquery" src="REG26_%202.%20Project_01%20_%20sysahelper_files/javascript_002.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-1160 cmid-780 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_%202.%20Project_01%20_%20sysahelper_files/javascript_003.php"></script>
|
||
<script src="REG26_%202.%20Project_01%20_%20sysahelper_files/combo"></script><script src="REG26_%202.%20Project_01%20_%20sysahelper_files/javascript.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_%202.%20Project_01%20_%20sysahelper_files/4.jpg" class="logo mr-1" alt="sysahelper">
|
||
</a>
|
||
|
||
<div class="primary-navigation">
|
||
<nav class="moremenu navigation observed">
|
||
<ul id="moremenu-69fc91d055665-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-69fc91d055665" 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-69fc91d055665" 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-69fc91d05729169fc91d055d7c3" 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="1160">
|
||
<div class="input-group">
|
||
<label for="searchinput-69fc91d05729169fc91d055d7c3">
|
||
<span class="sr-only">Найти</span>
|
||
</label>
|
||
<input type="text" id="searchinput-69fc91d05729169fc91d055d7c3" 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=780&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-адресации на устройствах 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 pageitem" 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
|
||
" 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_%202.%20Project_01%20_%20sysahelper_files/monologo.svg" alt=""></div></div><div class="page-header-headings"><h1 class="h2">2. Project_01</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>2. Project_01</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="2. Project_01" class="activity-information">
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div role="main"><div class="box py-3 generalbox center clearfix"><div class="no-overflow"><h3>Задание:</h3>
|
||
<p>a. На виртуальной машине Cloud-ADM создайте скрипт «deploy_project_01.sh».</p>
|
||
<p>b. В качестве домашней директории используйте путь /home/altlinux/Projects/Project_01.</p>
|
||
<p>c. Скрипт должен реализовывать следующий функционал:</p>
|
||
<ol>
|
||
<li>Автоматическое развёртывание виртуальных машин в соответствие с топологией (см. Топология Project_01).</li>
|
||
<li>Характеристики виртуальных машин: 1vCPU, 1 ГБ ОЗУ, 10 ГБ размер диска.</li>
|
||
<li>Образ операционной системы: alt-p11-cloud-x86_64.qcow2.</li>
|
||
<li>Для виртуальной машины haproxy01 должен создаваться и ассоциироваться Плавающий-IP.</li>
|
||
</ol>
|
||
<p>d. На виртуальной машине Cloud-ADM создайте скрипт «configure_project_01.sh».</p>
|
||
<p>e. В качестве домашней директории используйте путь /home/altlinux/Projects/Project_01.</p>
|
||
<p>f. Скрипт должен реализовывать следующий функционал:</p>
|
||
<ol>
|
||
<li>Установку необходимых компонентов для запуска приложения (см.
|
||
Приложение Project_01) на виртуальных машинах: game01, game02, game03 в
|
||
виде Docker-контейнеров.</li>
|
||
<li>Образ приложения нужно сделать легковесным через мультистейджинг.</li>
|
||
<li>На виртуальной машине haproxy01 настройку распределения входящих запросов через haproxy.</li>
|
||
<li>Настройку доступа к просмотру собранной статистики в веб-интерфейсе с
|
||
виртуальной машины Cloud-ADM по haproxy01.dev.au.team /haproxy?stats</li>
|
||
<li>Приложение должно быть доступно с виртуальной машины Cloud-ADM
|
||
из веб-браузера по именам: game01.dev.au.team, game02.dev.au.team и
|
||
game03.dev.au.team на 80 порту.</li>
|
||
<li>Приложение должно быть доступно из вне по Плавающему-IP виртуальной машины haproxy01 на порту 443.</li>
|
||
<li>С виртуальной машины Cloud-ADM доступ к приложению должен быть по <a href="https://game.au.team/" class="_blanktarget">https://game.au.team</a>.</li>
|
||
<li>Проблем с сертификатом возникать недолжно.</li>
|
||
</ol>
|
||
<p>g. На виртуальной машине Cloud-ADM создайте скрипт «destroy_project_01.sh».</p>
|
||
<p>h. В качестве домашней директории используйте путь /home/altlinux/Projects/Project_01.</p>
|
||
<p>i. Скрипт должен реализовывать следующий функционал:</p>
|
||
<ol>
|
||
<li>Удалять все автоматически созданные ресурсы через скрипт deploy_project_01.sh.</li>
|
||
<li>Если скрипт destroy_project_01.sh не реализован, участник не получит
|
||
баллов за данный пункт задания, а эксперты вручную выполнят удаление
|
||
ресурсов.</li>
|
||
</ol>
|
||
<h3>Вариант реализации:</h3>
|
||
<h3>Cloud-ADM:</h3>
|
||
<h4>Все последующие действия выполняются из-под пользователя <strong>altlinux</strong> (не root)</h4>
|
||
<ul>
|
||
<li>Создаём директорию <strong>/home/altlinux/Projects/Project_01</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>mkdir -p /home/altlinux/Projects/Project_01</code></pre>
|
||
<ul>
|
||
<li>Для скрипта <strong>deploy_project_01.sh</strong> будет использоваться <strong>Terraform</strong></li>
|
||
<li>Создадим директорию <strong>terraform</strong> в ранее созданной директории для <strong>Project_01:</strong></li>
|
||
</ul>
|
||
<pre class="language-markup"><code>mkdir /home/altlinux/Projects/Project_01/terraform</code></pre>
|
||
<ul>
|
||
<li>Перейдём в директорию <strong>/home/altlinux/Projects/</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>cd /home/altlinux/Projects/</code></pre>
|
||
<ul>
|
||
<li>Создадим файл с именем <strong>cloudinit.conf</strong> (имя произвольное) и поместим в него следующее содержимое:
|
||
<ul>
|
||
<li>указав переменные окружения для работы <strong>OpenStack CLI</strong> с API облака</li>
|
||
<li>в данном конкретном примере подразумевается что у участника:
|
||
<ol>
|
||
<li>Внешний доступ к панели самообслуживания: <strong><a href="https://cyberinfra.ssa2026.region:8800/" class="_blanktarget">https://cyberinfra.ssa2026.region:8800</a></strong></li>
|
||
<li>Домен: <strong>Competence_SiSA</strong></li>
|
||
<li>Проект: <strong>Project0</strong></li>
|
||
<li>Учётная запись: <strong>User0</strong></li>
|
||
<li>Пароль от уч.записи: <strong>P@ssw0rd</strong></li>
|
||
</ol>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>export OS_AUTH_URL=<a href="https://cyberinfra.ssa2026.region:5000/v3" class="_blanktarget">https://cyberinfra.ssa2026.region:5000/v3</a>
|
||
export OS_IDENTITY_API_VERSION=3
|
||
export OS_AUTH_TYPE=password
|
||
export OS_PROJECT_DOMAIN_NAME=Competence_SiSA
|
||
export OS_USER_DOMAIN_NAME=Competence_SiSA
|
||
export OS_PROJECT_NAME=Project0
|
||
export OS_USERNAME=User0
|
||
export OS_PASSWORD=P@ssw0rd</code></pre>
|
||
<ul id="yui_3_18_1_1_1763979499685_219">
|
||
<li id="yui_3_18_1_1_1763979499685_218">Применяем переменные окружения указанные в файле</li>
|
||
</ul>
|
||
<pre id="yui_3_18_1_1_1763979499685_215" class="language-markup"><code>source cloudinit.conf</code></pre>
|
||
<ul>
|
||
<li>Проверяем возможность взаимодействовать чере <strong>openstack-cli</strong> с облаком:
|
||
<ul>
|
||
<li>например, выведем список инстансов командой <strong>openstack --insecure server list</strong>:</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image.png"></p>
|
||
<ul>
|
||
<li style="list-style-type: none;">
|
||
<ul>
|
||
<li> или сетей командой <strong>openstack --insecure network list</strong>:</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(1).png"></p>
|
||
<ul>
|
||
<li>Для корректной работы с <strong>Terraform</strong>, необходимо создадать файл конфигурации зеркала</li>
|
||
<li id="yui_3_18_1_1_1763979499685_252">Файл должен иметь имя <strong>.terraformrc</strong> ибыть расположен в домашнем каталоге пользователя</li>
|
||
<li>Файл <strong>~/.terraformrc</strong> должен содержать в себе следующее:</li>
|
||
</ul>
|
||
<pre id="yui_3_18_1_1_1763979499685_255" class="language-markup"><code>provider_installation {
|
||
network_mirror {
|
||
url = "<a href="https://terraform-mirror.mcs.mail.ru/" class="_blanktarget">https://terraform-mirror.mcs.mail.ru</a>"
|
||
include = ["registry.terraform.io/*/*"]
|
||
}
|
||
direct {
|
||
exclude = ["registry.terraform.io/*/*"]
|
||
}
|
||
}</code></pre>
|
||
<ul>
|
||
<li>Перейдём в директорию <strong>Project_01/terraform/</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>cd Project_01/terraform/</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>provider.tf</strong> и опишем параметры для подключения к провайдеру <strong>openstack</strong> для работы с облаком:
|
||
<ul>
|
||
<li>в данном конкретном примере подразумевается что у участника:
|
||
<ol>
|
||
<li>Внешний доступ к панели самообслуживания: <strong><a href="https://cyberinfra.ssa2026.region:8800/" class="_blanktarget">https://cyberinfra.ssa2026.region:8800</a></strong></li>
|
||
<li>Домен: <strong>Competence_SiSA</strong></li>
|
||
<li>Проект: <strong>Project0</strong></li>
|
||
<li>Учётная запись: <strong>User0</strong></li>
|
||
<li>Пароль от уч.записи: <strong>P@ssw0rd</strong></li>
|
||
</ol>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>terraform {
|
||
required_providers {
|
||
openstack = {
|
||
source = "terraform-provider-openstack/openstack"
|
||
version = "2.1.0"
|
||
}
|
||
}
|
||
}
|
||
|
||
provider "openstack" {
|
||
auth_url = "<a href="https://cyberinfra.ssa2026.region:5000/v3" class="_blanktarget">https://cyberinfra.ssa2026.region:5000/v3</a>"
|
||
tenant_name = "Project0"
|
||
user_name = "User0"
|
||
password = "P@ssw0rd"
|
||
insecure = true
|
||
}</code></pre>
|
||
<ul>
|
||
<li>Инициализируем текущий каталог для работы с <strong>terraform</strong> и провайдером <strong>openstack</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>terraform init</code></pre>
|
||
<ul>
|
||
<li>Результат успешной инициализации <strong>Terraform</strong> провайдера:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(2).png"></p>
|
||
<ul>
|
||
<li>Чтобы с инстанса <strong>Cloud-ADM</strong> был доступ по SSH (для Ansible) до всех создаваемых инстансов (средствами Terraform), будет использоваться файл <strong>cloud-init.yml</strong></li>
|
||
<li>Создадим ключевую пару:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>ssh-keygen -t rsa</code></pre>
|
||
<ul>
|
||
<li>Поместим содержимое публичного ключа <strong>(id_rsa.pub</strong>) в файл <strong>cloud-init.yml</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>cat ~/.ssh/id_rsa.pub > cloud-init.yml</code></pre>
|
||
<ul>
|
||
<li>Откроем файл <strong>cloud-init.yml</strong> на редактирование и добавим в самое начало (до содержимого ключа ssh):
|
||
<ul>
|
||
<li>таким образом, на создаваемых в дальнейшем интстансах будут:<br>
|
||
<ul>
|
||
<li>создан пользователь <strong>altlinux</strong> с паролем <strong>P@ssw0rd;</strong></li>
|
||
<li>задан для суперпользователя <strong>root</strong> пароль <strong>toor</strong>;</li>
|
||
<li>передан публичный SSH-ключ <strong>Cloud-ADM</strong>.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>#cloud-config
|
||
chpasswd:
|
||
expire: false
|
||
users:
|
||
- {name: altlinux, password: P@ssw0rd, type: text}
|
||
- {name: root, password: toor, type: text}
|
||
ssh_pwauth: false
|
||
|
||
users:
|
||
- name: altlinux
|
||
sudo: ALL=(ALL) NOPASSWD:ALL
|
||
groups: wheel
|
||
shell: /bin/bash
|
||
ssh_authorized_keys:
|
||
- <СОДЕРЖИМОЕ_ПУБЛИЧНОГО_КЛЮЧА_SSH></code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>vm-game.tf</strong> и опишем конфигурацию для создаваемых инстансов <strong>game01, game02 </strong>и <strong>game03</strong>:
|
||
<ul>
|
||
<li>для минимального написания строк кода (время на выполнения задания не резиновое, <span style="text-decoration: underline;"><strong>хардкод приветствуется</strong></span>, данный модуль не проверяет применение лучших практик для автоматизации):
|
||
<ol>
|
||
<li>используем цикл по счётчику <strong>count</strong>;</li>
|
||
<li>избавляемся от параметризации с использованием переменных (хардкодим все значения в данный файл).</li>
|
||
<li>значение для параметра <strong>flavor_id</strong> можно узнать используя команду <strong>openstack --insecure flavor list</strong> скопировав <strong>ID</strong> Типа ВМ с <strong>1024 RAM </strong>и <strong>1 VCPUs</strong>;</li>
|
||
<li>значение для параметра <strong>uuid</strong> можно узнать используя команду <strong>openstack --insecure image list</strong> скопировав <strong>ID </strong>образа <strong>alt-p11-cloud-x86_64.qcow2</strong>.</li>
|
||
</ol>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>resource "openstack_compute_instance_v2" "game" {
|
||
count = "3"
|
||
name = "game0${count.index + 1}"
|
||
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_game[count.index].id
|
||
}
|
||
}</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>vm-haproxy01.tf</strong> и опишем конфигурацию для создаваемого инстанса <strong>haproxy01</strong>:
|
||
<ul>
|
||
<li>значение для параметра <strong style="text-align: initial;">flavor_id</strong><span style="text-align: initial;"> можно узнать используя команду </span><strong style="text-align: initial;">openstack --insecure flavor list</strong><span style="text-align: initial;"> скопировав </span><strong style="text-align: initial;">ID</strong><span style="text-align: initial;"> Типа ВМ с </span><strong style="text-align: initial;">1024 RAM </strong><span style="text-align: initial;">и </span><strong style="text-align: initial;">1 VCPUs</strong><span style="text-align: initial;">;</span></li>
|
||
<li>значение для параметра <strong>uuid</strong> можно узнать используя команду <strong>openstack --insecure image list</strong> скопировав <strong>ID </strong>образа <strong>alt-p11-cloud-x86_64.qcow2</strong>.</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>resource "openstack_compute_instance_v2" "haproxy" {
|
||
name = "haproxy01"
|
||
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.haproxy.id
|
||
}
|
||
}</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>network.tf</strong> и опишем конфигурацию сети в соответствие с топологией для <strong>Project_01</strong>:
|
||
<ul>
|
||
<li>значение для параметра <strong style="text-align: initial;">network_id</strong><span style="text-align: initial;"> можно узнать используя команду <strong>openstack --insecure network list</strong></span><span style="text-align: initial;"> скопировав </span><strong style="text-align: initial;">ID</strong><span style="text-align: initial;"> виртуальной сети с именем <strong>cloud-net</strong></span><span style="text-align: initial;">;</span></li>
|
||
<li>значение для параметра <strong style="text-align: initial;">subnet_id</strong><span style="text-align: initial;"> можно узнать используя команду <strong>openstack --insecure subnet list</strong></span><span style="text-align: initial;"> скопировав </span><strong style="text-align: initial;">ID</strong><span style="text-align: initial;"> виртуальной подсети <strong>192.168.1.0/24</strong></span><span style="text-align: initial;">;</span></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>resource "openstack_networking_port_v2" "port_vm_game" {
|
||
count = "3"
|
||
name = "port_vm_game0${count.index + 1}"
|
||
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.10${count.index + 1}"
|
||
}
|
||
}
|
||
|
||
resource "openstack_networking_port_v2" "haproxy" {
|
||
name = "port_vm_haproxy"
|
||
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.100"
|
||
}
|
||
}</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>floatingip.tf</strong> и опишем конфигурацию Плавающего IP-адреса в соответствие с топологией для <strong>Project_01</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>resource "openstack_networking_floatingip_v2" "floatingip_haproxy" {
|
||
pool = "public"
|
||
}
|
||
|
||
resource "openstack_networking_floatingip_associate_v2" "association_haproxy" {
|
||
port_id = openstack_networking_port_v2.haproxy.id
|
||
floating_ip = openstack_networking_floatingip_v2.floatingip_haproxy.address
|
||
}</code></pre>
|
||
<ul>
|
||
<li>Выполняем проверку синтаксиса и структуры файлов конфигурации <strong>Terraform</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>terraform validate</code></pre>
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(3).png"></p>
|
||
<ul>
|
||
<li>Перейдём в директорию <strong>/home/altlinux/Projects/Project_01</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>cd /home/altlinux/Projects/Project_01</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>deploy_project_01.sh</strong> и укажем инструкции необходимые для запуска <strong>Terraform</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>#!/bin/bash
|
||
|
||
cd /home/$USER/Projects
|
||
source cloudinit.conf
|
||
cd /home/$USER/Projects/Project_01/terraform
|
||
terraform init
|
||
terraform apply -auto-approve
|
||
|
||
sleep 60
|
||
echo "done"</code></pre>
|
||
<ul>
|
||
<li>Выдать права на исполнение для файла <strong>deploy_project_01.sh</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>chmod +x deploy_project_01.sh</code></pre>
|
||
<ul>
|
||
<li>Запустить скрипт на исполнение:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>./deploy_project_01.sh</code></pre>
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(4).png"></p>
|
||
<ul>
|
||
<li>Проверить автоматически созданные инстансы в облаке:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(5).png" width="1201" height="432"></p>
|
||
<ul>
|
||
<li>Проверить Плавающий IP-адрес для инстанса <strong>haproxy01</strong>:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(6).png" width="1200" height="298"></p>
|
||
<ul>
|
||
<li>Поскольку IP-адресация задаётся статическая, то для удобства работы редактируем конфигурационный файл <strong>/etc/hosts</strong>:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(7).png"></p>
|
||
<ul>
|
||
<li>Создадим директорию <strong>ansible</strong> в ранее созданной директории для <strong>Project_01:</strong></li>
|
||
</ul>
|
||
<pre class="language-markup"><code>mkdir /home/altlinux/Projects/Project_01/ansible</code></pre>
|
||
<ul>
|
||
<li>Перейдём в директорию <strong>/home/altlinux/Projects/Project_01/ansible</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>cd /home/altlinux/Projects/Project_01/ansible</code></pre>
|
||
<ul>
|
||
<li>Создадим файл конфигурации <strong>ansible.cfg </strong>поместим в него следующее содержимое:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>[defaults]
|
||
inventory = ./inventory.yml
|
||
host_key_checking = False
|
||
callback_enabled = profile_tasks
|
||
callback_whitelist = profile_tasks</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>inventory.yml</strong> и опишем файл инвентаря для <strong>Ansible</strong>:
|
||
<ul>
|
||
<li>описав 2 группы хостов с именами <strong>proxys</strong> и <strong>games</strong>:
|
||
<ul>
|
||
<li>группа <strong>proxys</strong> содержит в себе инстанс <strong>haproxy01</strong>;</li>
|
||
<li>группа <strong>games</strong> содержит в себе инстансы <strong>game01, game02 </strong>и <strong>game03;</strong></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>all:
|
||
children:
|
||
proxys:
|
||
hosts:
|
||
haproxy01:
|
||
|
||
games:
|
||
hosts:
|
||
game01:
|
||
game02:
|
||
game03:</code></pre>
|
||
<ul>
|
||
<li>Создадим директорию <strong>group_vars</strong> где будем создавать файлы с переменными для групп хостов:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>mkdir group_vars</code></pre>
|
||
<ul>
|
||
<li>Создадим файл '<strong>all.yml</strong>' в директории <strong>group_vars</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>---
|
||
ansible_python_interpreter: /usr/bin/python3
|
||
ansible_ssh_user: altlinux
|
||
ansible_ssh_private_key_file: ~/.ssh/id_rsa</code></pre>
|
||
<ul>
|
||
<li>Проверяем возможность <strong>ansible</strong> подключиться к инстансам описанным в инвентарном файле:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>ansible -m ping all</code></pre>
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(8).png"></p>
|
||
<ul>
|
||
<li>Скачиваем любым способом файлы <a href="https://disk.yandex.ru/d/uhpN6U6UYRK_Nw" target="_blank" rel="noopener">https://disk.yandex.ru/d/uhpN6U6UYRK_Nw</a> (у приложения есть README от программиста-разработчика)</li>
|
||
<li>Распаковываем архив в директорию <strong>/home/altlinux/Projects/Project_01/2048-game/</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>unzip ~/Project_01.zip -d /home/altlinux/Projects/Project_01/2048-game/</code></pre>
|
||
<ul>
|
||
<li>В директории <strong>/home/altlinux/Projects/Project_01/ansible</strong> создаём файл <strong>Dockerfile</strong>:
|
||
<ul>
|
||
<li>образ приложения нужно сделать легковесным через мультистейджинг</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>FROM node:16-alpine AS builder
|
||
|
||
WORKDIR /2048-game
|
||
|
||
COPY package*.json ./
|
||
RUN npm install --include=dev
|
||
|
||
COPY . .
|
||
RUN npm run build
|
||
|
||
EXPOSE 8080
|
||
|
||
FROM nginx:stable-alpine3.19
|
||
COPY --from=builder /2048-game/dist /usr/share/nginx/html</code></pre>
|
||
<ul>
|
||
<li>В директории <strong>/home/altlinux/Projects/Project_01/ansible</strong> создаём файл <strong>games_playbook.yml</strong>:
|
||
<ul>
|
||
<li>таким образом, на группе хостов <strong>games</strong> (на инстансах: <strong>game01, game02</strong> и <strong>game03</strong>) будет настроено:
|
||
<ol>
|
||
<li>Установлены пакеты: <strong>docker-engine</strong> и <strong>docker-buildx</strong>;</li>
|
||
<li>Запущена и добавлена в автозагрузку служба <strong>docker</strong>;</li>
|
||
<li>Скопированы все файлы с <strong>Cloud-ADM</strong> на удалённые хосты, необходимые для приложения;</li>
|
||
<li>Скопирован с <strong>Cloud-ADM</strong> на удалённые хосты файл <strong>Dockerfile</strong>;</li>
|
||
<li>На удалённых хостах выполнена локальная сборка образа для приложения;</li>
|
||
<li>На удалённых хостав выполнен запуск контейнеров с веб-приложением.</li>
|
||
</ol>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>---
|
||
- hosts: games
|
||
become: true
|
||
|
||
tasks:
|
||
- name: Install docker
|
||
community.general.apt_rpm:
|
||
name:
|
||
- docker-engine
|
||
- docker-buildx
|
||
state: present
|
||
update_cache: true
|
||
|
||
- name: Started and enabled docker
|
||
ansible.builtin.systemd:
|
||
name: docker
|
||
state: started
|
||
enabled: true
|
||
|
||
- name: Copying the project files
|
||
ansible.builtin.copy:
|
||
src: ../2048-game/
|
||
dest: "/home/{{ ansible_ssh_user }}/2048-game/"
|
||
|
||
- name: Copying the Dockerfile
|
||
ansible.builtin.copy:
|
||
src: ./Dockerfile
|
||
dest: "/home/{{ ansible_ssh_user }}/2048-game/"
|
||
|
||
- name: Build docker image
|
||
community.docker.docker_image_build:
|
||
name: "2048-game"
|
||
tag: latest
|
||
path: "/home/{{ ansible_ssh_user }}/2048-game/"
|
||
dockerfile: Dockerfile
|
||
|
||
- name: Start docker container
|
||
community.docker.docker_container:
|
||
name: "2048-game"
|
||
image: "2048-game"
|
||
ports: "80:80"
|
||
state: started
|
||
restart: true</code></pre>
|
||
<ul>
|
||
<li>На текущем этап можно выполнить тестовый запуск созданного playbook-а <strong>games_playbook.yml</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>ansible-playbook games_playbook.yml</code></pre>
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(9).png"></p>
|
||
<ul>
|
||
<li>Таким образом при обращении в браузере с <strong>Cloud-ADM</strong> по описанным ниже url должно открываться веб-приложение:
|
||
<ul>
|
||
<li style="font-weight: bold;"><strong>game01.dev.au.team:</strong></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(10).png"></p>
|
||
<ul>
|
||
<li style="list-style-type: none;">
|
||
<ul>
|
||
<li style="font-weight: bold;"><strong>game02.dev.au.team:</strong></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(11).png"></p>
|
||
<ul>
|
||
<li style="list-style-type: none;">
|
||
<ul>
|
||
<li style="font-weight: bold;"><strong>game03.dev.au.team:</strong></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(12).png"></p>
|
||
<ul>
|
||
<li>В директории <strong>/home/altlinux/Projects/Project_01/ansible</strong> создаём директорию <strong>files</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>mkdir files</code></pre>
|
||
<ul>
|
||
<li>В директории <strong>/home/altlinux/Projects/Project_01/ansible/files</strong> создаём конфигурационный файл <strong>haproxy.cfg</strong>
|
||
<ul>
|
||
<li>в данном файле стандартное содержимое <strong>haproxy.cfg</strong> за исключением блока <strong>frontend</strong> и <strong>backend</strong> для реализации необходимого функционала
|
||
<ul>
|
||
<li>для удобства можно найти конфигаруционный файл в сети Интернет;</li>
|
||
<li>или же выполнить установку пакета <strong>haproxy</strong> и забрать его из директории <strong>/etc/haproxy/haproxy.cfg</strong> (т.к. инстанс <strong>haproxy01</strong> в любом случае будет удалён).</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>global
|
||
log /dev/log daemon
|
||
chroot /var/lib/haproxy
|
||
pidfile /run/haproxy.pid
|
||
maxconn 4000
|
||
user _haproxy
|
||
group _haproxy
|
||
daemon
|
||
stats socket /var/lib/haproxy/stats
|
||
|
||
defaults
|
||
mode http
|
||
log global
|
||
option httplog
|
||
option dontlognull
|
||
option http-server-close
|
||
option forwardfor except 127.0.0.0/8
|
||
option redispatch
|
||
retries 3
|
||
timeout http-request 10s
|
||
timeout queue 1m
|
||
timeout connect 10s
|
||
timeout client 1m
|
||
timeout server 1m
|
||
timeout http-keep-alive 10s
|
||
timeout check 10s
|
||
maxconn 3000
|
||
|
||
frontend http_front
|
||
bind *:80
|
||
bind *:443 ssl crt /var/lib/ssl/game.pem
|
||
default_backend http_back
|
||
|
||
backend http_back
|
||
balance roundrobin
|
||
server game01 192.168.1.101:80 check
|
||
server game02 192.168.1.102:80 check
|
||
server game03 192.168.1.103:80 check
|
||
|
||
listen stats
|
||
bind :80
|
||
bind *:443 ssl crt /var/lib/ssl/game.pem
|
||
stats enable
|
||
stats uri /
|
||
stats refresh 5s
|
||
stats realm Haproxy\ Stats</code></pre>
|
||
<ul>
|
||
<li>Средствами утилиты <strong>openssl</strong> разворачиваем свой Удостоверяющий Центр сертификатов:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>openssl req -x509 -sha256 -days 3653 -newkey rsa:2048 -keyout ca.key -out ca.crt</code></pre>
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(13).png"></p>
|
||
<ul>
|
||
<li>Добавляем корневой сертификат в хранилище на <strong>Cloud-ADM</strong>:</li>
|
||
</ul>
|
||
<pre id="yui_3_18_1_1_1764049198937_42" class="language-markup"><code>sudo cp ca.crt /etc/pki/ca-trust/source/anchors/ && sudo update-ca-trust</code></pre>
|
||
<ul>
|
||
<li>Перемещаем файлы сертификатов в директорию <strong>files</strong>:</li>
|
||
</ul>
|
||
<pre id="yui_3_18_1_1_1764049198937_40" class="language-markup"><code>mv ca.* files/</code></pre>
|
||
<ul>
|
||
<li>Генерируем ключи, запросы и сертификаты для веб:
|
||
<ul>
|
||
<li>Ключ:</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>openssl genrsa -out files/game.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 files/game.key -new -out files/game.csr</code></pre>
|
||
<ul>
|
||
<li style="list-style-type: none;">
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(14).png"></p>
|
||
<ul>
|
||
<li>Файл с расширениями для сертификата:</li>
|
||
</ul>
|
||
<pre id="yui_3_18_1_1_1764049198937_45" class="language-markup"><code>cat <<EOF > files/game.ext
|
||
authorityKeyIdentifier=keyid,issuer
|
||
basicConstraints=CA:FALSE
|
||
subjectAltName=@alt_names
|
||
[alt_names]
|
||
DNS.1=game.au.team
|
||
IP.1=192.168.1.100
|
||
EOF</code></pre>
|
||
<ul>
|
||
<li style="list-style-type: none;">
|
||
<ul>
|
||
<li>Выпускаем сертификат:</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre id="yui_3_18_1_1_1764049198937_46" class="language-markup"><code>openssl x509 -req -CA files/ca.crt -CAkey files/ca.key -in files/game.csr -out files/game.crt -days 365 -CAcreateserial -extfile files/game.ext</code></pre>
|
||
<ul>
|
||
<li>Создаём цепочку для haproxy:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>cat files/game.key files/game.crt > files/game.pem</code></pre>
|
||
<ul>
|
||
<li>В директории <strong>/home/altlinux/Projects/Project_01/ansible</strong> создаём файл <strong>proxys_playbook.yml</strong>:
|
||
<ul>
|
||
<li>таким образом, на группе хостов <strong>games</strong> (на инстансах: <strong>game01, game02</strong> и <strong>game03</strong>) будет настроено:
|
||
<ol>
|
||
<li>Установлен пакет <strong>haproxy</strong>;</li>
|
||
<li>Скопирован с <strong>Cloud-ADM</strong> на удалённый хост файл <strong>haproxy.cfg</strong>;</li>
|
||
<li>Скопирован с <strong>CloudpADM</strong> на удалённый хост файл <strong>game.pem</strong>;</li>
|
||
<li>Включена и добавлена в автозагрузку служба <strong>haproxy</strong>.</li>
|
||
</ol>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>---
|
||
- hosts: proxys
|
||
become: true
|
||
|
||
tasks:
|
||
- name: Install HAProxy
|
||
community.general.apt_rpm:
|
||
name: haproxy
|
||
state: present
|
||
update_cache: true
|
||
|
||
- name: Copy file 'haproxy.cfg'
|
||
ansible.builtin.copy:
|
||
src: files/haproxy.cfg
|
||
dest: /etc/haproxy/haproxy.cfg
|
||
notify:
|
||
- Restarted HAProxy
|
||
|
||
- name: Copy certificate for HAProxy
|
||
ansible.builtin.copy:
|
||
src: files/game.pem
|
||
dest: /var/lib/ssl/game.pem
|
||
notify:
|
||
- Restarted HAProxy
|
||
|
||
- name: Started and enabled HAProxy
|
||
ansible.builtin.systemd:
|
||
name: haproxy
|
||
state: restarted
|
||
enabled: true
|
||
|
||
handlers:
|
||
- name: Restarted HAProxy
|
||
ansible.builtin.systemd:
|
||
name: haproxy
|
||
state: restarted</code></pre>
|
||
<ul>
|
||
<li>На текущем этап можно выполнить тестовый запуск созданного playbook-а <strong>proxys_playbook.yml</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>ansible-playbook proxys_playbook.yml</code></pre>
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(15).png"></p>
|
||
<ul>
|
||
<li>Таким образом при обращении в браузере с <strong>Cloud-ADM</strong> по описанным ниже url должно открываться веб-приложение:
|
||
<ul>
|
||
<li><strong><a href="https://game.au.team/" class="_blanktarget">https://game.au.team</a></strong> (в файле /etc/hosts должна быть добавлена запись):</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(16).png"></p>
|
||
<ul>
|
||
<li style="list-style-type: none;">
|
||
<ul>
|
||
<li>haproxy01.dev.au.team /haproxy?stats</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(17).png" width="1199" height="734"></p>
|
||
<ul>
|
||
<li style="list-style-type: none;">
|
||
<ul>
|
||
<li>Плавающий IP-адрес:</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(18).png" width="1200" height="338"></p>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(19).png"></p>
|
||
<ul>
|
||
<li>Перейдём в директорию <strong>/home/altlinux/Projects/Project_01</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>cd /home/altlinux/Projects/Project_01</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>configure_project_01.sh</strong> и укажем инструкции необходимые для запуска <strong>Ansible</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>#!/bin/bash
|
||
|
||
export PATH=/home/altlinux/.local/bin:$PATH
|
||
cd /home/$USER/Projects/Project_01/ansible
|
||
sleep 10
|
||
ansible-playbook games_playbook.yml
|
||
sleep 5
|
||
ansible-playbook proxys_playbook.yml</code></pre>
|
||
<ul>
|
||
<li>Выдать права на исполнение для файла <strong>configure_project_01</strong><strong>.sh</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>chmod +x configure_project_01.sh</code></pre>
|
||
<ul>
|
||
<li>Запустить скрипт на исполнение:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>./configure_project_01.sh</code></pre>
|
||
<ul>
|
||
<li>Создадим файл <strong>destroy_project_01.sh</strong> и укажем инструкции необходимые для запуска <strong>Ansible</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>#!/bin/bash
|
||
|
||
cd /home/$USER/Projects
|
||
source cloudinit.conf
|
||
cd /home/$USER/Projects/Project_01/terraform
|
||
terraform destroy -auto-approve
|
||
rm -f ~/.ssh/known_hosts
|
||
|
||
echo "done"</code></pre>
|
||
<ul>
|
||
<li>Выдать права на исполнение для файла <strong>destroy_project_01.sh</strong>:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>chmod +x destroy_project_01.sh</code></pre>
|
||
<ul>
|
||
<li>Запустить скрипт на исполнение:</li>
|
||
</ul>
|
||
<pre class="language-markup"><code>./destroy_project_01.sh</code></pre>
|
||
<ul>
|
||
<li>Результат:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(20).png"></p>
|
||
<ul>
|
||
<li>Таким образом, структура для <strong>Project01</strong> получилась следующая:</li>
|
||
</ul>
|
||
<p><img src="REG26_%202.%20Project_01%20_%20sysahelper_files/image%20(22).png"></p></div></div><div class="modified">Последнее изменение: вторник, 2 декабря 2025, 14:24</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=784&forceview=1" id="prev-activity-link" class="btn btn-link">1.3. Установка Ansible на Cloud-ADM</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_f69fc91d055d7c4">
|
||
<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&forceview=1">Конкурсная документация (в исходном виде)</option>
|
||
<option value="/mod/url/view.php?id=778&forceview=1">Текст задание</option>
|
||
<option value="/mod/page/view.php?id=704&forceview=1">Виртуальный стенд</option>
|
||
<option value="/mod/page/view.php?id=719&forceview=1">Используемая таблица адресации</option>
|
||
<option value="/mod/page/view.php?id=705&forceview=1">Настройка виртуальной машины ISP</option>
|
||
<option value="/mod/page/view.php?id=720&forceview=1">1. Настройка имён и IP-адресации на устройствах rtr-cod и rtr-a</option>
|
||
<option value="/mod/page/view.php?id=724&forceview=1">2. Подход к настройке fw-cod</option>
|
||
<option value="/mod/page/view.php?id=722&forceview=1">3. Настройка маршрутизации BGP на rtr-cod</option>
|
||
<option value="/mod/page/view.php?id=721&forceview=1">4. Настройка туннелей между офисом «а» и «cod»</option>
|
||
<option value="/mod/page/view.php?id=725&forceview=1">5. Настройка доступа в Интернет</option>
|
||
<option value="/mod/page/view.php?id=726&forceview=1">6. Настройка динамической маршрутизации между офисом «a» и «cod»</option>
|
||
<option value="/mod/page/view.php?id=727&forceview=1">7. Настройка коммутации между sw1-a и sw2-a</option>
|
||
<option value="/mod/page/view.php?id=728&forceview=1">8. Настройка доступа к веб-интерфейсу fw-cod и лицензирование</option>
|
||
<option value="/mod/page/view.php?id=729&forceview=1">9. Создание интерфейсов типа VLAN на fw-cod для маршутизации между VLAN</option>
|
||
<option value="/mod/page/view.php?id=730&forceview=1">10. Настройка коммутации между sw1-cod и sw2-cod</option>
|
||
<option value="/mod/page/view.php?id=731&forceview=1">11. Настройка имён и IP-адресов на всех остальных устройствах</option>
|
||
<option value="/mod/page/view.php?id=732&forceview=1">12. Настройка административного доступа (RADIUS)</option>
|
||
<option value="/mod/page/view.php?id=733&forceview=1">13. Настройка синхронизации времени между сетевыми устройствами</option>
|
||
<option value="/mod/page/view.php?id=734&forceview=1">14. Настройка службы доменных имен в COD-е</option>
|
||
<option value="/mod/page/view.php?id=735&forceview=1">15. Развёртывание контроллера домена на базе SambaAD</option>
|
||
<option value="/mod/page/view.php?id=736&forceview=1">16. Настройка службы доменных имен в OFFICE</option>
|
||
<option value="/mod/page/view.php?id=737&forceview=1">17. Настройка центра сертификации</option>
|
||
<option value="/mod/page/view.php?id=772&forceview=1">18. Настройка сервера баз данных</option>
|
||
<option value="/mod/page/view.php?id=773&forceview=1">19. Настройка устройства хранения данных (iSCSI)</option>
|
||
<option value="/mod/page/view.php?id=774&forceview=1">20. Настройка устройства хранения данных (LVM)</option>
|
||
<option value="/mod/page/view.php?id=775&forceview=1">21. Настройка устройства хранения данных (NFS)</option>
|
||
<option value="/mod/page/view.php?id=776&forceview=1">22. Настройка системы мониторинга</option>
|
||
<option value="/mod/page/view.php?id=777&forceview=1">23. Настройка IP телефонии</option>
|
||
<option value="/mod/page/view.php?id=779&forceview=1">1. Подготовка машины Cloud-ADM</option>
|
||
<option value="/mod/page/view.php?id=782&forceview=1">1.1. Установка Terraform на Cloud-ADM</option>
|
||
<option value="/mod/page/view.php?id=783&forceview=1">1.2. Установка OpenStack CLI на Cloud-ADM</option>
|
||
<option value="/mod/page/view.php?id=784&forceview=1">1.3. Установка Ansible на Cloud-ADM</option>
|
||
<option value="/mod/page/view.php?id=781&forceview=1">3. Project_02</option>
|
||
<option value="/mod/page/view.php?id=785&forceview=1">3. Project_03</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 class="text">
|
||
<span class="nav-guide">
|
||
Следующий элемент курса
|
||
</span>
|
||
<a href="https://sysahelper.ru/mod/page/view.php?id=781&forceview=1" id="next-activity-link" class="btn btn-link">3. Project_02</a>
|
||
</div>
|
||
<div class="rarrow">
|
||
<i class="icon-arrow-right"></i>
|
||
</div>
|
||
</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_%202.%20Project_01%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_%202.%20Project_01%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-69fc91d055665-navbar-nav'));
|
||
});
|
||
;
|
||
|
||
require(
|
||
[
|
||
'jquery',
|
||
],
|
||
function(
|
||
$
|
||
) {
|
||
var uniqid = "69fc91d056e2e69fc91d055d7c2";
|
||
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 = "69fc91d05729169fc91d055d7c3";
|
||
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_f69fc91d055d7c4').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(1160, []); 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_%202.%20Project_01%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('random69fc91d055d7c5'); Y.on('domready', function() { M.util.js_complete("init"); M.util.js_complete('random69fc91d055d7c5'); });
|
||
})();
|
||
//]]>
|
||
</script>
|
||
|
||
|
||
</div>
|
||
|
||
</div><div id="yui3-css-stamp" style="position: absolute !important; visibility: hidden !important" class=""></div>
|
||
|
||
|
||
<div></div></body></html> |