You've already forked docker_fresh
							
							
				mirror of
				https://github.com/1C-Company/docker_fresh.git
				synced 2025-10-30 23:47:54 +02:00 
			
		
		
		
	edit readme
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -6,3 +6,4 @@ workdir | ||||
| workdir/ | ||||
| test.py | ||||
| .vscode/launch.json | ||||
| .hostname | ||||
| @@ -51,8 +51,12 @@ cd docker_fresh | ||||
| ``` | ||||
|  | ||||
| ##### Размещение дистрибутитов | ||||
| Все ранее  скачанные дистрибутивы необходимо разместить в каталоге `/docker_fresh/distr/`. После добавление всех дистрибутивов в каталог, он должен выглядить следубщим образом | ||||
| Все ранее  скачанные дистрибутивы необходимо разместить в каталоге `/docker_fresh/distr/`. | ||||
| После добавления всех дистрибутивов в каталог, он должен выглядить примерно следующим образом | ||||
|    | ||||
|  | ||||
| ##### Настройка списка создваемых информационных баз | ||||
| В файле `/docker_fresh/other_files/params.json` расположен список информационных баз которые требуется создать в формате **JSON** | ||||
| В файле `/docker_fresh/other_files/params.json` расположен список информационных баз в формате **JSON** которые требуется создать | ||||
| - Информационная база **SM** всегда должна быть первой в списке | ||||
| - Для каждой базы необходимо прописать имя **CF** файла расположенного в каталоге`/docker_fresh/distr/` | ||||
| - В данный список можно добавить свои информационные базы | ||||
							
								
								
									
										353
									
								
								conf/web/httpd.conf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										353
									
								
								conf/web/httpd.conf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,353 @@ | ||||
| # | ||||
| # This is the main Apache HTTP server configuration file.  It contains the | ||||
| # configuration directives that give the server its instructions. | ||||
| # See <URL:http://httpd.apache.org/docs/2.4/> for detailed information. | ||||
| # In particular, see  | ||||
| # <URL:http://httpd.apache.org/docs/2.4/mod/directives.html> | ||||
| # for a discussion of each configuration directive. | ||||
| # | ||||
| # Do NOT simply read the instructions in here without understanding | ||||
| # what they do.  They're here only as hints or reminders.  If you are unsure | ||||
| # consult the online docs. You have been warned.   | ||||
| # | ||||
| # Configuration and logfile names: If the filenames you specify for many | ||||
| # of the server's control files begin with "/" (or "drive:/" for Win32), the | ||||
| # server will use that explicit path.  If the filenames do *not* begin | ||||
| # with "/", the value of ServerRoot is prepended -- so 'log/access_log' | ||||
| # with ServerRoot set to '/www' will be interpreted by the | ||||
| # server as '/www/log/access_log', where as '/log/access_log' will be | ||||
| # interpreted as '/log/access_log'. | ||||
|  | ||||
| # | ||||
| # ServerRoot: The top of the directory tree under which the server's | ||||
| # configuration, error, and log files are kept. | ||||
| # | ||||
| # Do not add a slash at the end of the directory path.  If you point | ||||
| # ServerRoot at a non-local disk, be sure to specify a local disk on the | ||||
| # Mutex directive, if file-based mutexes are used.  If you wish to share the | ||||
| # same ServerRoot for multiple httpd daemons, you will need to change at | ||||
| # least PidFile. | ||||
| # | ||||
| ServerRoot "/etc/httpd" | ||||
|  | ||||
| # | ||||
| # Listen: Allows you to bind Apache to specific IP addresses and/or | ||||
| # ports, instead of the default. See also the <VirtualHost> | ||||
| # directive. | ||||
| # | ||||
| # Change this to Listen on specific IP addresses as shown below to  | ||||
| # prevent Apache from glomming onto all bound IP addresses. | ||||
| # | ||||
| #Listen 12.34.56.78:80 | ||||
| Listen 80 | ||||
|  | ||||
| # | ||||
| # Dynamic Shared Object (DSO) Support | ||||
| # | ||||
| # To be able to use the functionality of a module which was built as a DSO you | ||||
| # have to place corresponding `LoadModule' lines at this location so the | ||||
| # directives contained in it are actually available _before_ they are used. | ||||
| # Statically compiled modules (those listed by `httpd -l') do not need | ||||
| # to be loaded here. | ||||
| # | ||||
| # Example: | ||||
| # LoadModule foo_module modules/mod_foo.so | ||||
| # | ||||
| Include conf.modules.d/*.conf | ||||
|  | ||||
| # | ||||
| # If you wish httpd to run as a different user or group, you must run | ||||
| # httpd as root initially and it will switch.   | ||||
| # | ||||
| # User/Group: The name (or #number) of the user/group to run httpd as. | ||||
| # It is usually good practice to create a dedicated user and group for | ||||
| # running httpd, as with most system services. | ||||
| # | ||||
| User usr1cv8 | ||||
| Group grp1cv8 | ||||
|  | ||||
| # 'Main' server configuration | ||||
| # | ||||
| # The directives in this section set up the values used by the 'main' | ||||
| # server, which responds to any requests that aren't handled by a | ||||
| # <VirtualHost> definition.  These values also provide defaults for | ||||
| # any <VirtualHost> containers you may define later in the file. | ||||
| # | ||||
| # All of these directives may appear inside <VirtualHost> containers, | ||||
| # in which case these default settings will be overridden for the | ||||
| # virtual host being defined. | ||||
| # | ||||
|  | ||||
| # | ||||
| # ServerAdmin: Your address, where problems with the server should be | ||||
| # e-mailed.  This address appears on some server-generated pages, such | ||||
| # as error documents.  e.g. admin@your-domain.com | ||||
| # | ||||
| ServerAdmin root@localhost | ||||
|  | ||||
| # | ||||
| # ServerName gives the name and port that the server uses to identify itself. | ||||
| # This can often be determined automatically, but we recommend you specify | ||||
| # it explicitly to prevent problems during startup. | ||||
| # | ||||
| # If your host doesn't have a registered DNS name, enter its IP address here. | ||||
| # | ||||
| ServerName localhost | ||||
|  | ||||
| # | ||||
| # Deny access to the entirety of your server's filesystem. You must | ||||
| # explicitly permit access to web content directories in other  | ||||
| # <Directory> blocks below. | ||||
| # | ||||
| <Directory /> | ||||
|     AllowOverride none | ||||
|     Require all denied | ||||
| </Directory> | ||||
|  | ||||
| # | ||||
| # Note that from this point forward you must specifically allow | ||||
| # particular features to be enabled - so if something's not working as | ||||
| # you might expect, make sure that you have specifically enabled it | ||||
| # below. | ||||
| # | ||||
|  | ||||
| # | ||||
| # DocumentRoot: The directory out of which you will serve your | ||||
| # documents. By default, all requests are taken from this directory, but | ||||
| # symbolic links and aliases may be used to point to other locations. | ||||
| # | ||||
| DocumentRoot "/var/www/html" | ||||
|  | ||||
| # | ||||
| # Relax access to content within /var/www. | ||||
| # | ||||
| <Directory "/var/www"> | ||||
|     AllowOverride None | ||||
|     # Allow open access: | ||||
|     Require all granted | ||||
| </Directory> | ||||
|  | ||||
| # Further relax access to the default document root: | ||||
| <Directory "/var/www/html"> | ||||
|     # | ||||
|     # Possible values for the Options directive are "None", "All", | ||||
|     # or any combination of: | ||||
|     #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews | ||||
|     # | ||||
|     # Note that "MultiViews" must be named *explicitly* --- "Options All" | ||||
|     # doesn't give it to you. | ||||
|     # | ||||
|     # The Options directive is both complicated and important.  Please see | ||||
|     # http://httpd.apache.org/docs/2.4/mod/core.html#options | ||||
|     # for more information. | ||||
|     # | ||||
|     Options Indexes FollowSymLinks | ||||
|  | ||||
|     # | ||||
|     # AllowOverride controls what directives may be placed in .htaccess files. | ||||
|     # It can be "All", "None", or any combination of the keywords: | ||||
|     #   Options FileInfo AuthConfig Limit | ||||
|     # | ||||
|     AllowOverride None | ||||
|  | ||||
|     # | ||||
|     # Controls who can get stuff from this server. | ||||
|     # | ||||
|     Require all granted | ||||
| </Directory> | ||||
|  | ||||
| # | ||||
| # DirectoryIndex: sets the file that Apache will serve if a directory | ||||
| # is requested. | ||||
| # | ||||
| <IfModule dir_module> | ||||
|     DirectoryIndex index.html | ||||
| </IfModule> | ||||
|  | ||||
| # | ||||
| # The following lines prevent .htaccess and .htpasswd files from being  | ||||
| # viewed by Web clients.  | ||||
| # | ||||
| <Files ".ht*"> | ||||
|     Require all denied | ||||
| </Files> | ||||
|  | ||||
| # | ||||
| # ErrorLog: The location of the error log file. | ||||
| # If you do not specify an ErrorLog directive within a <VirtualHost> | ||||
| # container, error messages relating to that virtual host will be | ||||
| # logged here.  If you *do* define an error logfile for a <VirtualHost> | ||||
| # container, that host's errors will be logged there and not here. | ||||
| # | ||||
| ErrorLog "logs/error_log" | ||||
|  | ||||
| # | ||||
| # LogLevel: Control the number of messages logged to the error_log. | ||||
| # Possible values include: debug, info, notice, warn, error, crit, | ||||
| # alert, emerg. | ||||
| # | ||||
| LogLevel warn | ||||
|  | ||||
| <IfModule log_config_module> | ||||
|     # | ||||
|     # The following directives define some format nicknames for use with | ||||
|     # a CustomLog directive (see below). | ||||
|     # | ||||
|     LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined | ||||
|     LogFormat "%h %l %u %t \"%r\" %>s %b" common | ||||
|  | ||||
|     <IfModule logio_module> | ||||
|       # You need to enable mod_logio.c to use %I and %O | ||||
|       LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio | ||||
|     </IfModule> | ||||
|  | ||||
|     # | ||||
|     # The location and format of the access logfile (Common Logfile Format). | ||||
|     # If you do not define any access logfiles within a <VirtualHost> | ||||
|     # container, they will be logged here.  Contrariwise, if you *do* | ||||
|     # define per-<VirtualHost> access logfiles, transactions will be | ||||
|     # logged therein and *not* in this file. | ||||
|     # | ||||
|     #CustomLog "logs/access_log" common | ||||
|  | ||||
|     # | ||||
|     # If you prefer a logfile with access, agent, and referer information | ||||
|     # (Combined Logfile Format) you can use the following directive. | ||||
|     # | ||||
|     CustomLog "logs/access_log" combined | ||||
| </IfModule> | ||||
|  | ||||
| <IfModule alias_module> | ||||
|     # | ||||
|     # Redirect: Allows you to tell clients about documents that used to  | ||||
|     # exist in your server's namespace, but do not anymore. The client  | ||||
|     # will make a new request for the document at its new location. | ||||
|     # Example: | ||||
|     # Redirect permanent /foo http://www.example.com/bar | ||||
|  | ||||
|     # | ||||
|     # Alias: Maps web paths into filesystem paths and is used to | ||||
|     # access content that does not live under the DocumentRoot. | ||||
|     # Example: | ||||
|     # Alias /webpath /full/filesystem/path | ||||
|     # | ||||
|     # If you include a trailing / on /webpath then the server will | ||||
|     # require it to be present in the URL.  You will also likely | ||||
|     # need to provide a <Directory> section to allow access to | ||||
|     # the filesystem path. | ||||
|  | ||||
|     # | ||||
|     # ScriptAlias: This controls which directories contain server scripts.  | ||||
|     # ScriptAliases are essentially the same as Aliases, except that | ||||
|     # documents in the target directory are treated as applications and | ||||
|     # run by the server when requested rather than as documents sent to the | ||||
|     # client.  The same rules about trailing "/" apply to ScriptAlias | ||||
|     # directives as to Alias. | ||||
|     # | ||||
|     ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" | ||||
|  | ||||
| </IfModule> | ||||
|  | ||||
| # | ||||
| # "/var/www/cgi-bin" should be changed to whatever your ScriptAliased | ||||
| # CGI directory exists, if you have that configured. | ||||
| # | ||||
| <Directory "/var/www/cgi-bin"> | ||||
|     AllowOverride None | ||||
|     Options None | ||||
|     Require all granted | ||||
| </Directory> | ||||
|  | ||||
| <IfModule mime_module> | ||||
|     # | ||||
|     # TypesConfig points to the file containing the list of mappings from | ||||
|     # filename extension to MIME-type. | ||||
|     # | ||||
|     TypesConfig /etc/mime.types | ||||
|  | ||||
|     # | ||||
|     # AddType allows you to add to or override the MIME configuration | ||||
|     # file specified in TypesConfig for specific file types. | ||||
|     # | ||||
|     #AddType application/x-gzip .tgz | ||||
|     # | ||||
|     # AddEncoding allows you to have certain browsers uncompress | ||||
|     # information on the fly. Note: Not all browsers support this. | ||||
|     # | ||||
|     #AddEncoding x-compress .Z | ||||
|     #AddEncoding x-gzip .gz .tgz | ||||
|     # | ||||
|     # If the AddEncoding directives above are commented-out, then you | ||||
|     # probably should define those extensions to indicate media types: | ||||
|     # | ||||
|     AddType application/x-compress .Z | ||||
|     AddType application/x-gzip .gz .tgz | ||||
|  | ||||
|     # | ||||
|     # AddHandler allows you to map certain file extensions to "handlers": | ||||
|     # actions unrelated to filetype. These can be either built into the server | ||||
|     # or added with the Action directive (see below) | ||||
|     # | ||||
|     # To use CGI scripts outside of ScriptAliased directories: | ||||
|     # (You will also need to add "ExecCGI" to the "Options" directive.) | ||||
|     # | ||||
|     #AddHandler cgi-script .cgi | ||||
|  | ||||
|     # For type maps (negotiated resources): | ||||
|     #AddHandler type-map var | ||||
|  | ||||
|     # | ||||
|     # Filters allow you to process content before it is sent to the client. | ||||
|     # | ||||
|     # To parse .shtml files for server-side includes (SSI): | ||||
|     # (You will also need to add "Includes" to the "Options" directive.) | ||||
|     # | ||||
|     AddType text/html .shtml | ||||
|     AddOutputFilter INCLUDES .shtml | ||||
| </IfModule> | ||||
|  | ||||
| # | ||||
| # Specify a default charset for all content served; this enables | ||||
| # interpretation of all content as UTF-8 by default.  To use the  | ||||
| # default browser choice (ISO-8859-1), or to allow the META tags | ||||
| # in HTML content to override this choice, comment out this | ||||
| # directive: | ||||
| # | ||||
| AddDefaultCharset UTF-8 | ||||
|  | ||||
| <IfModule mime_magic_module> | ||||
|     # | ||||
|     # The mod_mime_magic module allows the server to use various hints from the | ||||
|     # contents of the file itself to determine its type.  The MIMEMagicFile | ||||
|     # directive tells the module where the hint definitions are located. | ||||
|     # | ||||
|     MIMEMagicFile conf/magic | ||||
| </IfModule> | ||||
|  | ||||
| # | ||||
| # Customizable error responses come in three flavors: | ||||
| # 1) plain text 2) local redirects 3) external redirects | ||||
| # | ||||
| # Some examples: | ||||
| #ErrorDocument 500 "The server made a boo boo." | ||||
| #ErrorDocument 404 /missing.html | ||||
| #ErrorDocument 404 "/cgi-bin/missing_handler.pl" | ||||
| #ErrorDocument 402 http://www.example.com/subscription_info.html | ||||
| # | ||||
|  | ||||
| # | ||||
| # EnableMMAP and EnableSendfile: On systems that support it,  | ||||
| # memory-mapping or the sendfile syscall may be used to deliver | ||||
| # files.  This usually improves server performance, but must | ||||
| # be turned off when serving from networked-mounted  | ||||
| # filesystems or if support for these functions is otherwise | ||||
| # broken on your system. | ||||
| # Defaults if commented: EnableMMAP On, EnableSendfile Off | ||||
| # | ||||
| #EnableMMAP off | ||||
| EnableSendfile on | ||||
|  | ||||
| # Supplemental configuration | ||||
| # | ||||
| # Load config files in the "/etc/httpd/conf.d" directory, if any. | ||||
| IncludeOptional conf.d/*.conf | ||||
| @@ -92,6 +92,7 @@ services: | ||||
|       - ./artifacts/web/log:/var/log/1c | ||||
|       - ./artifacts/web/www/a/:/var/www/a/ | ||||
|       - ./artifacts/web/www/int/:/var/www/int/ | ||||
|       - ./artifacts/web/conf/httpd.conf:/etc/httpd/conf/httpd.conf | ||||
|       - ./mnt:/mnt | ||||
|     depends_on: | ||||
|       - srv | ||||
|   | ||||
							
								
								
									
										10
									
								
								install.py
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								install.py
									
									
									
									
									
								
							| @@ -14,12 +14,12 @@ class colors: | ||||
|     WHITE = '\033[97m' | ||||
|  | ||||
| images = [] | ||||
| # images.append(centos.New()) | ||||
| # images.append(db.New()) | ||||
| images.append(centos.New()) | ||||
| images.append(db.New()) | ||||
| images.append(site.New()) | ||||
| # images.append(forum.New()) | ||||
| # images.append(core.New()) | ||||
| # images.append(gate.New()) | ||||
| images.append(forum.New()) | ||||
| images.append(core.New()) | ||||
| images.append(gate.New()) | ||||
|  | ||||
| debug = '-debug' in sys.argv | ||||
| start_time = datetime.now() | ||||
|   | ||||
| @@ -53,7 +53,7 @@ def web_publish_command(host_name, conf_name, internal, descriptor, base_name='' | ||||
|     command.append('\'/mnt/other-files/vrd/{}.vrd\''.format(descriptor)) | ||||
|     return command | ||||
|  | ||||
| def create_ib_command(host_name, ib_name, conf_ver='', job_dn='N'): | ||||
| def create_ib_command(host_name, ib_name, file_name, job_block): | ||||
|     command = [] | ||||
|     command.append('docker') | ||||
|     command.append('exec') | ||||
| @@ -62,9 +62,9 @@ def create_ib_command(host_name, ib_name, conf_ver='', job_dn='N'): | ||||
|     command.append('/opt/1C/v8.3/x86_64/1cv8') | ||||
|     command.append('CREATEINFOBASE') | ||||
|     command.append('\'Srvr="srv";Ref="{0}";DBMS=PostgreSQL;DBSrvr="db";DB="{0}";DBUID="postgres";LicDstr="Y";Locale="ru_RU";CrSQLDB="Y";SchJobDn="{1}";\''.format( | ||||
|         ib_name, job_dn)) | ||||
|         ib_name, job_block)) | ||||
|     command.append('/UseTemplate') | ||||
|     command.append('/mnt/' + ib_name + '_' + conf_ver.replace('.', '_') + '.cf') | ||||
|     command.append('/mnt/{}'.format(file_name)) | ||||
|     command.append('/Out "/mnt/create_ib_' + ib_name + '.out"') | ||||
|     command.append('/DumpResult "/mnt/create_ib_' + ib_name + '.result"') | ||||
|     return command | ||||
|   | ||||
										
											Binary file not shown.
										
									
								
							| @@ -1,6 +1,21 @@ | ||||
| { | ||||
|     "ИмяХоста": "HOSTNAMEREPLACE", | ||||
|     "ИнформационныеБазы": [ | ||||
|         { | ||||
|             "Сервер": "web/int/sm", | ||||
|             "ИмяВКластере": "sm", | ||||
|             "КодКонфигурации": "sm", | ||||
|             "ТипКонфигурации": "Управляющая", | ||||
|             "Администратор": "Администратор", | ||||
|             "ПользовательУправления": "RemoteAccess", | ||||
|             "ИмяВнешнейПубликации": "adm", | ||||
|             "ИмяВнутреннейПубликации": "sm", | ||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "zoneless", | ||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||
|             "СоздаватьВМенеджере": true, | ||||
|             "ИмяФайлаКонфигурации":"sm.cf", | ||||
|             "БлокироватьРаботуРегЗаданийПриСоздании": true | ||||
|         }, | ||||
|         { | ||||
|             "Сервер": "web/int/smtl", | ||||
|             "ИмяВКластере": "smtl", | ||||
| @@ -9,10 +24,12 @@ | ||||
|             "Администратор": "Admin", | ||||
|             "ПользовательУправления": "RemoteAccess", | ||||
|             "ИмяВнешнейПубликации": "smtl", | ||||
|             "ИмяВнутреннейПубликации": "smtl", | ||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "withzone", | ||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||
|             "СоздаватьВМенеджере": true, | ||||
|             "ИмяФайлаКонфигурации":"smtl.cf" | ||||
|             "ИмяФайлаКонфигурации":"smtl.cf", | ||||
|             "БлокироватьРаботуРегЗаданийПриСоздании": false | ||||
|         }, | ||||
|         { | ||||
|             "Сервер": "web/int/sa", | ||||
| @@ -22,10 +39,12 @@ | ||||
|             "Администратор": "", | ||||
|             "ПользовательУправления": "", | ||||
|             "ИмяВнешнейПубликации": "sa", | ||||
|             "ИмяВнутреннейПубликации": "sa", | ||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "zoneless", | ||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||
|             "СоздаватьВМенеджере": true, | ||||
|             "ИмяФайлаКонфигурации":"sa.cf" | ||||
|             "ИмяФайлаКонфигурации":"sa.cf", | ||||
|             "БлокироватьРаботуРегЗаданийПриСоздании": false | ||||
|         }, | ||||
|         { | ||||
|             "Сервер": "", | ||||
| @@ -35,23 +54,12 @@ | ||||
|             "Администратор": "Администратор", | ||||
|             "ПользовательУправления": "", | ||||
|             "ИмяВнешнейПубликации": "", | ||||
|             "ИмяВнутреннейПубликации": "am", | ||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "", | ||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||
|             "СоздаватьВМенеджере": false, | ||||
|             "ИмяФайлаКонфигурации":"am.cf" | ||||
|         }, | ||||
|         { | ||||
|             "Сервер": "web/int/sm", | ||||
|             "ИмяВКластере": "sm", | ||||
|             "КодКонфигурации": "sm", | ||||
|             "ТипКонфигурации": "Управляющая", | ||||
|             "Администратор": "Администратор", | ||||
|             "ПользовательУправления": "RemoteAccess", | ||||
|             "ИмяВнешнейПубликации": "adm", | ||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "zoneless", | ||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||
|             "СоздаватьВМенеджере": true, | ||||
|             "ИмяФайлаКонфигурации":"sm.cf" | ||||
|             "ИмяФайлаКонфигурации":"am.cf", | ||||
|             "БлокироватьРаботуРегЗаданийПриСоздании": false | ||||
|         } | ||||
|     ] | ||||
| } | ||||
							
								
								
									
										138
									
								
								start.py
									
									
									
									
									
								
							
							
						
						
									
										138
									
								
								start.py
									
									
									
									
									
								
							| @@ -25,6 +25,16 @@ class colors: | ||||
|     GREEN = '\033[92m' | ||||
|     WHITE = '\033[97m' | ||||
|  | ||||
| class ib_prop: | ||||
|     a_name = 'ИмяВнешнейПубликации' | ||||
|     a_desc = 'ИмяФайлаШаблонаВнешненийПубликации' | ||||
|     int_name = 'ИмяВнутреннейПубликации' | ||||
|     int_desc = 'ИмяФайлаШаблонаВнутреннейПубликации' | ||||
|     conf_file = 'ИмяФайлаКонфигурации' | ||||
|     name = 'ИмяВКластере' | ||||
|     job = 'БлокироватьРаботуРегЗаданийПриСоздании' | ||||
|     adm = 'Администратор' | ||||
|  | ||||
|  | ||||
| def print_description(function_to_decorate): | ||||
|  | ||||
| @@ -49,7 +59,7 @@ def call(command, remote=True, debug=False, action='', measure_duration=False, s | ||||
|         commands.append(docker_run_str) | ||||
|     commands.append(command) | ||||
|  | ||||
|     if action != '': | ||||
|     if action != '' and (debug or global_debug): | ||||
|         print(action, end='\r') | ||||
|     if debug or global_debug: | ||||
|         print(' '.join(commands)) | ||||
| @@ -66,7 +76,7 @@ def call(command, remote=True, debug=False, action='', measure_duration=False, s | ||||
|                     stdout=stdout, stderr=stderr) | ||||
|     end_time = datetime.now() - start_time | ||||
|  | ||||
|     if action != '': | ||||
|     if action != '' and (debug or global_debug): | ||||
|         print(action, 'is fihish.', 'Duration:{}'.format( | ||||
|             end_time) if measure_duration else '') | ||||
|  | ||||
| @@ -84,44 +94,71 @@ def get_configurations_data(): | ||||
|                 info_base_list.append(ib_data) | ||||
|  | ||||
|  | ||||
| def prepare_new_ib(key, post_data='', job_dn=False): | ||||
| def prepare_new_ib(ib_name, int_name, conf_file_name, job_block): | ||||
|  | ||||
|     job_dn_str = 'Y' if job_dn else 'N' | ||||
|     job_dn_str = 'Y' if job_block else 'N' | ||||
|  | ||||
|     call(' '.join(helper.create_ib_command(host_name, key, configurations[key], job_dn_str)), | ||||
|     call(' '.join(helper.create_ib_command(host_name, ib_name, conf_file_name, job_dn_str)), | ||||
|          remote=False, | ||||
|          action='Creating ' + key, | ||||
|          action='Creating ' + ib_name, | ||||
|          measure_duration=True) | ||||
|  | ||||
|     call(' '.join(helper.install_control_ext_command(host_name, key)), | ||||
|     call(' '.join(helper.install_control_ext_command(host_name, ib_name)), | ||||
|          remote=False, | ||||
|          action='Installing control extension', | ||||
|          measure_duration=True) | ||||
|  | ||||
|     ext_name = helper.replace_sep(local_work_dir + 'mnt/' + key + '.cfe') | ||||
|     ext_name = helper.replace_sep(local_work_dir + 'mnt/' + ib_name + '.cfe') | ||||
|     if os.path.isfile(ext_name): | ||||
|         call(' '.join(helper.install_ext_command(host_name, key)), | ||||
|         call(' '.join(helper.install_ext_command(host_name, ib_name)), | ||||
|              remote=False, | ||||
|              action='Installing extension', | ||||
|              measure_duration=True) | ||||
|  | ||||
|     if key == 'sm': | ||||
|         call(' '.join(helper.install_sm_ext_command(host_name, key)), | ||||
|          remote=False, | ||||
|          action='Installing gate control extension', | ||||
|          measure_duration=True)     | ||||
|     if ib_name == 'sm': | ||||
|         post_data = '/mnt/other-files/params.json' | ||||
|         call(' '.join(helper.install_sm_ext_command(host_name, ib_name)), | ||||
|             remote=False, | ||||
|             action='Installing gate control extension', | ||||
|             measure_duration=True) | ||||
|     else: | ||||
|         post_data = ''     | ||||
|  | ||||
|     call(' '.join(helper.disable_safe_mode(host_name, key)), | ||||
|     call(' '.join(helper.disable_safe_mode(host_name, ib_name)), | ||||
|          remote=False, | ||||
|          action='Disabling safe mode for extensions', | ||||
|          measure_duration=True) | ||||
|  | ||||
|     str_post = '-d @{}'.format(post_data) if post_data != '' else '' | ||||
|     call('docker exec web.{} curl {} -X POST http://localhost/int/{}/hs/api.1cfresh/init'.format(host_name, str_post, key), | ||||
|     call('docker exec web.{} curl {} -X POST http://localhost/int/{}/hs/api.1cfresh/init'.format(host_name, str_post, int_name), | ||||
|          remote=False, | ||||
|          action='Initialization', | ||||
|          measure_duration=True) | ||||
|  | ||||
| @print_description | ||||
| def prepare_bases(): | ||||
|     """Prepare all bases""" | ||||
|  | ||||
|     sm_ib = None | ||||
|  | ||||
|     for ib_data in info_base_list: | ||||
|         if ib_data[ib_prop.name] == 'sm':  | ||||
|             sm_ib = ib_data | ||||
|             continue | ||||
|         prepare_new_ib( | ||||
|             ib_name=ib_data[ib_prop.name], | ||||
|             int_name=ib_data[ib_prop.int_name], | ||||
|             conf_file_name=ib_data[ib_prop.conf_file], | ||||
|             job_block=ib_data[ib_prop.job] | ||||
|         ) | ||||
|      | ||||
|     # prepare sm base  | ||||
|     prepare_new_ib( | ||||
|             ib_name=sm_ib[ib_prop.name], | ||||
|             int_name=sm_ib[ib_prop.int_name], | ||||
|             conf_file_name=sm_ib[ib_prop.conf_file], | ||||
|             job_block=sm_ib[ib_prop.job] | ||||
|         )     | ||||
|  | ||||
| @print_description | ||||
| def renew_nginx_files(): | ||||
| @@ -147,6 +184,8 @@ def renew_workdir(): | ||||
|     call('rm -rf /out_files/workdir') | ||||
|     call('mkdir -p {}mnt'.format(work_dir)) | ||||
|     call('mkdir -p {}artifacts'.format(work_dir)) | ||||
|     call('mkdir -p {}artifacts/web/conf'.format(work_dir)) | ||||
|     call('sh -c "cp /out_files/conf/web/httpd.conf {}artifacts/web/conf/httpd.conf"'.format(work_dir)) | ||||
|     call('sh -c "cp /out_files/distr/*.cf {}mnt/"'.format(work_dir)) | ||||
|  | ||||
|  | ||||
| @@ -172,23 +211,21 @@ def renew_other_files(): | ||||
| def publish_sevises(): | ||||
|     """Publish services""" | ||||
|  | ||||
|     # publish a services | ||||
|     call(' '.join(helper.web_publish_command( | ||||
|         host_name, 'adm', False, 'zoneless', 'sm')), remote=False) | ||||
|     call(' '.join(helper.web_publish_command( | ||||
|         host_name, 'smtl', False, 'withzone')), remote=False) | ||||
|     call(' '.join(helper.web_publish_command( | ||||
|         host_name, 'sa', False, 'zoneless')), remote=False) | ||||
|     for ib_data in info_base_list: | ||||
|         if ib_data[ib_prop.a_name] != '': | ||||
|             call(' '.join(helper.web_publish_command( | ||||
|                 host_name=host_name, | ||||
|                 conf_name=ib_data[ib_prop.a_name], | ||||
|                 internal=False, | ||||
|                 descriptor=ib_data[ib_prop.a_desc], | ||||
|                 base_name=ib_data[ib_prop.name])), remote=False) | ||||
|  | ||||
|     # publish int services | ||||
|     call(' '.join(helper.web_publish_command( | ||||
|         host_name, 'sm', True, 'zoneless')), remote=False) | ||||
|     call(' '.join(helper.web_publish_command( | ||||
|         host_name, 'smtl', True, 'zoneless')), remote=False) | ||||
|     call(' '.join(helper.web_publish_command( | ||||
|         host_name, 'sa', True, 'zoneless')), remote=False) | ||||
|     call(' '.join(helper.web_publish_command( | ||||
|         host_name, 'am', True, 'zoneless')), remote=False) | ||||
|         call(' '.join(helper.web_publish_command( | ||||
|             host_name=host_name, | ||||
|             conf_name=ib_data[ib_prop.int_name], | ||||
|             internal=True, | ||||
|             descriptor=ib_data[ib_prop.int_desc], | ||||
|             base_name=ib_data[ib_prop.name])), remote=False) | ||||
|      | ||||
|     # publish special services | ||||
|     call(' '.join(helper.web_publish_command( | ||||
| @@ -199,9 +236,8 @@ def publish_sevises(): | ||||
|         'extreg', 'sm;Usr=ExtReg;Pwd=' + sup_password)), remote=False) | ||||
|  | ||||
|     # restart Apache | ||||
|     call('docker exec web.' + host_name + | ||||
|          ' chown -R usr1cv8:grp1cv8 /var/www', remote=False) | ||||
|     call('docker exec web.' + host_name + ' httpd -k graceful', remote=False) | ||||
|     call('docker exec web.{} chown -R usr1cv8:grp1cv8 /var/www'.format(host_name), remote=False) | ||||
|     call('docker exec web.{} httpd -k graceful'.format(host_name), remote=False) | ||||
|  | ||||
|  | ||||
| @print_description | ||||
| @@ -211,11 +247,11 @@ def set_full_host_name(is_new): | ||||
|     global host_name | ||||
|     if is_new: | ||||
|         part_host_name = helper.get_host_name(sys.argv) | ||||
|         f = open(local_work_dir + 'hostname', 'x+') | ||||
|         f = open('.hostname', 'w+') | ||||
|         f.write(part_host_name) | ||||
|         f.close() | ||||
|     else: | ||||
|         f = open(local_work_dir + 'hostname') | ||||
|         f = open('.hostname') | ||||
|         part_host_name = f.read() + host_name | ||||
|         f.close() | ||||
|  | ||||
| @@ -245,6 +281,13 @@ def delete_control_extension(ib_name, user, desc): | ||||
|  | ||||
|     call(' '.join(helper.delete_control_extension(ib_name, host_name, user)), remote=False) | ||||
|  | ||||
| def delete_all_control_ext(): | ||||
|     for ib_data in info_base_list: | ||||
|         delete_control_extension( | ||||
|             ib_name=ib_data[ib_prop.name], | ||||
|             user= None if ib_data[ib_prop.adm] == '' else ib_data[ib_prop.adm], | ||||
|             desc=ib_data[ib_prop.name] | ||||
|         ) | ||||
|  | ||||
| @print_description | ||||
| def configurate_site(): | ||||
| @@ -271,18 +314,22 @@ def init_gate(): | ||||
|  | ||||
|     call('docker exec -t web.{0} curl --user Администратор: https://{0}/a/adm/hs/docker_control/update_appgate'.format(host_name), | ||||
|         remote=False) | ||||
|  | ||||
|  | ||||
| @print_description | ||||
| def wait_postgres(): | ||||
|     """Waiting for postgres""" | ||||
|  | ||||
|     call('docker exec -t db.{} /wait_postgres.sh'.format(host_name), remote=False) | ||||
|  | ||||
|  | ||||
| @print_description | ||||
| def wait_site(): | ||||
|     """Waiting for site""" | ||||
|  | ||||
|     call('docker exec -t site.{} /wait_site.sh'.format(host_name), remote=False) | ||||
|  | ||||
|  | ||||
| @print_description | ||||
| def enable_job_in_sm(): | ||||
|     """Enable scheduled jobs sm""" | ||||
| @@ -290,6 +337,7 @@ def enable_job_in_sm(): | ||||
|     call('docker exec -t ras.{} deployka scheduledjobs unlock -db sm -db-user \'Администратор\''.format(host_name), | ||||
|         remote=False) | ||||
|  | ||||
|  | ||||
| global_start_time = datetime.now() | ||||
| print('{}Fresh is starting{}'.format(colors.GREEN, colors.WHITE)) | ||||
|  | ||||
| @@ -299,13 +347,11 @@ call(docker_compose_str + 'down', remote=False, silent=False) | ||||
| new_server = '-new' in sys.argv | ||||
| global_debug = '-debug' in sys.argv | ||||
|  | ||||
| if new_server: | ||||
|     renew_workdir() | ||||
|     get_configurations_data() | ||||
|  | ||||
| set_full_host_name(new_server) | ||||
|  | ||||
| if new_server: | ||||
|     renew_workdir() | ||||
|     get_configurations_data() | ||||
|     renew_nginx_files() | ||||
|     renew_docker_compose() | ||||
|     renew_other_files() | ||||
| @@ -316,10 +362,7 @@ wait_postgres() | ||||
|  | ||||
| if new_server: | ||||
|     publish_sevises() | ||||
|     prepare_new_ib('smtl') | ||||
|     prepare_new_ib('sa') | ||||
|     prepare_new_ib('am') | ||||
|     prepare_new_ib('sm', post_data='/mnt/other-files/params.json') | ||||
|     prepare_bases() | ||||
|     enable_job_in_sm() | ||||
|     create_db_site() | ||||
|     create_db_forum() | ||||
| @@ -329,10 +372,7 @@ call(docker_compose_str + 'up -d nginx site', remote=False, silent=False) | ||||
| wait_site() | ||||
|  | ||||
| if new_server: | ||||
|     delete_control_extension('smtl', 'Admin', 'smtl') | ||||
|     delete_control_extension('am', 'Администратор', 'am') | ||||
|     delete_control_extension('sm', 'Администратор', 'sm') | ||||
|     delete_control_extension('sa', None, 'sa') | ||||
|     delete_all_control_ext() | ||||
|     configurate_site() | ||||
|     init_gate() | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user