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/ | workdir/ | ||||||
| test.py | test.py | ||||||
| .vscode/launch.json | .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/log:/var/log/1c | ||||||
|       - ./artifacts/web/www/a/:/var/www/a/ |       - ./artifacts/web/www/a/:/var/www/a/ | ||||||
|       - ./artifacts/web/www/int/:/var/www/int/ |       - ./artifacts/web/www/int/:/var/www/int/ | ||||||
|  |       - ./artifacts/web/conf/httpd.conf:/etc/httpd/conf/httpd.conf | ||||||
|       - ./mnt:/mnt |       - ./mnt:/mnt | ||||||
|     depends_on: |     depends_on: | ||||||
|       - srv |       - srv | ||||||
|   | |||||||
							
								
								
									
										10
									
								
								install.py
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								install.py
									
									
									
									
									
								
							| @@ -14,12 +14,12 @@ class colors: | |||||||
|     WHITE = '\033[97m' |     WHITE = '\033[97m' | ||||||
|  |  | ||||||
| images = [] | images = [] | ||||||
| # images.append(centos.New()) | images.append(centos.New()) | ||||||
| # images.append(db.New()) | images.append(db.New()) | ||||||
| images.append(site.New()) | images.append(site.New()) | ||||||
| # images.append(forum.New()) | images.append(forum.New()) | ||||||
| # images.append(core.New()) | images.append(core.New()) | ||||||
| # images.append(gate.New()) | images.append(gate.New()) | ||||||
|  |  | ||||||
| debug = '-debug' in sys.argv | debug = '-debug' in sys.argv | ||||||
| start_time = datetime.now() | 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)) |     command.append('\'/mnt/other-files/vrd/{}.vrd\''.format(descriptor)) | ||||||
|     return command |     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 = [] | ||||||
|     command.append('docker') |     command.append('docker') | ||||||
|     command.append('exec') |     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('/opt/1C/v8.3/x86_64/1cv8') | ||||||
|     command.append('CREATEINFOBASE') |     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( |     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('/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('/Out "/mnt/create_ib_' + ib_name + '.out"') | ||||||
|     command.append('/DumpResult "/mnt/create_ib_' + ib_name + '.result"') |     command.append('/DumpResult "/mnt/create_ib_' + ib_name + '.result"') | ||||||
|     return command |     return command | ||||||
|   | |||||||
										
											Binary file not shown.
										
									
								
							| @@ -1,6 +1,21 @@ | |||||||
| { | { | ||||||
|     "ИмяХоста": "HOSTNAMEREPLACE", |     "ИмяХоста": "HOSTNAMEREPLACE", | ||||||
|     "ИнформационныеБазы": [ |     "ИнформационныеБазы": [ | ||||||
|  |         { | ||||||
|  |             "Сервер": "web/int/sm", | ||||||
|  |             "ИмяВКластере": "sm", | ||||||
|  |             "КодКонфигурации": "sm", | ||||||
|  |             "ТипКонфигурации": "Управляющая", | ||||||
|  |             "Администратор": "Администратор", | ||||||
|  |             "ПользовательУправления": "RemoteAccess", | ||||||
|  |             "ИмяВнешнейПубликации": "adm", | ||||||
|  |             "ИмяВнутреннейПубликации": "sm", | ||||||
|  |             "ИмяФайлаШаблонаВнешненийПубликации": "zoneless", | ||||||
|  |             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||||
|  |             "СоздаватьВМенеджере": true, | ||||||
|  |             "ИмяФайлаКонфигурации":"sm.cf", | ||||||
|  |             "БлокироватьРаботуРегЗаданийПриСоздании": true | ||||||
|  |         }, | ||||||
|         { |         { | ||||||
|             "Сервер": "web/int/smtl", |             "Сервер": "web/int/smtl", | ||||||
|             "ИмяВКластере": "smtl", |             "ИмяВКластере": "smtl", | ||||||
| @@ -9,10 +24,12 @@ | |||||||
|             "Администратор": "Admin", |             "Администратор": "Admin", | ||||||
|             "ПользовательУправления": "RemoteAccess", |             "ПользовательУправления": "RemoteAccess", | ||||||
|             "ИмяВнешнейПубликации": "smtl", |             "ИмяВнешнейПубликации": "smtl", | ||||||
|  |             "ИмяВнутреннейПубликации": "smtl", | ||||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "withzone", |             "ИмяФайлаШаблонаВнешненийПубликации": "withzone", | ||||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", |             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||||
|             "СоздаватьВМенеджере": true, |             "СоздаватьВМенеджере": true, | ||||||
|             "ИмяФайлаКонфигурации":"smtl.cf" |             "ИмяФайлаКонфигурации":"smtl.cf", | ||||||
|  |             "БлокироватьРаботуРегЗаданийПриСоздании": false | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "Сервер": "web/int/sa", |             "Сервер": "web/int/sa", | ||||||
| @@ -22,10 +39,12 @@ | |||||||
|             "Администратор": "", |             "Администратор": "", | ||||||
|             "ПользовательУправления": "", |             "ПользовательУправления": "", | ||||||
|             "ИмяВнешнейПубликации": "sa", |             "ИмяВнешнейПубликации": "sa", | ||||||
|  |             "ИмяВнутреннейПубликации": "sa", | ||||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "zoneless", |             "ИмяФайлаШаблонаВнешненийПубликации": "zoneless", | ||||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", |             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||||
|             "СоздаватьВМенеджере": true, |             "СоздаватьВМенеджере": true, | ||||||
|             "ИмяФайлаКонфигурации":"sa.cf" |             "ИмяФайлаКонфигурации":"sa.cf", | ||||||
|  |             "БлокироватьРаботуРегЗаданийПриСоздании": false | ||||||
|         }, |         }, | ||||||
|         { |         { | ||||||
|             "Сервер": "", |             "Сервер": "", | ||||||
| @@ -35,23 +54,12 @@ | |||||||
|             "Администратор": "Администратор", |             "Администратор": "Администратор", | ||||||
|             "ПользовательУправления": "", |             "ПользовательУправления": "", | ||||||
|             "ИмяВнешнейПубликации": "", |             "ИмяВнешнейПубликации": "", | ||||||
|  |             "ИмяВнутреннейПубликации": "am", | ||||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "", |             "ИмяФайлаШаблонаВнешненийПубликации": "", | ||||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", |             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", | ||||||
|             "СоздаватьВМенеджере": false, |             "СоздаватьВМенеджере": false, | ||||||
|             "ИмяФайлаКонфигурации":"am.cf" |             "ИмяФайлаКонфигурации":"am.cf", | ||||||
|         }, |             "БлокироватьРаботуРегЗаданийПриСоздании": false | ||||||
|         { |  | ||||||
|             "Сервер": "web/int/sm", |  | ||||||
|             "ИмяВКластере": "sm", |  | ||||||
|             "КодКонфигурации": "sm", |  | ||||||
|             "ТипКонфигурации": "Управляющая", |  | ||||||
|             "Администратор": "Администратор", |  | ||||||
|             "ПользовательУправления": "RemoteAccess", |  | ||||||
|             "ИмяВнешнейПубликации": "adm", |  | ||||||
|             "ИмяФайлаШаблонаВнешненийПубликации": "zoneless", |  | ||||||
|             "ИмяФайлаШаблонаВнутреннейПубликации": "zoneless", |  | ||||||
|             "СоздаватьВМенеджере": true, |  | ||||||
|             "ИмяФайлаКонфигурации":"sm.cf" |  | ||||||
|         } |         } | ||||||
|     ] |     ] | ||||||
| } | } | ||||||
							
								
								
									
										138
									
								
								start.py
									
									
									
									
									
								
							
							
						
						
									
										138
									
								
								start.py
									
									
									
									
									
								
							| @@ -25,6 +25,16 @@ class colors: | |||||||
|     GREEN = '\033[92m' |     GREEN = '\033[92m' | ||||||
|     WHITE = '\033[97m' |     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): | 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(docker_run_str) | ||||||
|     commands.append(command) |     commands.append(command) | ||||||
|  |  | ||||||
|     if action != '': |     if action != '' and (debug or global_debug): | ||||||
|         print(action, end='\r') |         print(action, end='\r') | ||||||
|     if debug or global_debug: |     if debug or global_debug: | ||||||
|         print(' '.join(commands)) |         print(' '.join(commands)) | ||||||
| @@ -66,7 +76,7 @@ def call(command, remote=True, debug=False, action='', measure_duration=False, s | |||||||
|                     stdout=stdout, stderr=stderr) |                     stdout=stdout, stderr=stderr) | ||||||
|     end_time = datetime.now() - start_time |     end_time = datetime.now() - start_time | ||||||
|  |  | ||||||
|     if action != '': |     if action != '' and (debug or global_debug): | ||||||
|         print(action, 'is fihish.', 'Duration:{}'.format( |         print(action, 'is fihish.', 'Duration:{}'.format( | ||||||
|             end_time) if measure_duration else '') |             end_time) if measure_duration else '') | ||||||
|  |  | ||||||
| @@ -84,44 +94,71 @@ def get_configurations_data(): | |||||||
|                 info_base_list.append(ib_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, |          remote=False, | ||||||
|          action='Creating ' + key, |          action='Creating ' + ib_name, | ||||||
|          measure_duration=True) |          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, |          remote=False, | ||||||
|          action='Installing control extension', |          action='Installing control extension', | ||||||
|          measure_duration=True) |          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): |     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, |              remote=False, | ||||||
|              action='Installing extension', |              action='Installing extension', | ||||||
|              measure_duration=True) |              measure_duration=True) | ||||||
|  |  | ||||||
|     if key == 'sm': |     if ib_name == 'sm': | ||||||
|         call(' '.join(helper.install_sm_ext_command(host_name, key)), |         post_data = '/mnt/other-files/params.json' | ||||||
|          remote=False, |         call(' '.join(helper.install_sm_ext_command(host_name, ib_name)), | ||||||
|          action='Installing gate control extension', |             remote=False, | ||||||
|          measure_duration=True)     |             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, |          remote=False, | ||||||
|          action='Disabling safe mode for extensions', |          action='Disabling safe mode for extensions', | ||||||
|          measure_duration=True) |          measure_duration=True) | ||||||
|  |  | ||||||
|     str_post = '-d @{}'.format(post_data) if post_data != '' else '' |     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, |          remote=False, | ||||||
|          action='Initialization', |          action='Initialization', | ||||||
|          measure_duration=True) |          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 | @print_description | ||||||
| def renew_nginx_files(): | def renew_nginx_files(): | ||||||
| @@ -147,6 +184,8 @@ def renew_workdir(): | |||||||
|     call('rm -rf /out_files/workdir') |     call('rm -rf /out_files/workdir') | ||||||
|     call('mkdir -p {}mnt'.format(work_dir)) |     call('mkdir -p {}mnt'.format(work_dir)) | ||||||
|     call('mkdir -p {}artifacts'.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)) |     call('sh -c "cp /out_files/distr/*.cf {}mnt/"'.format(work_dir)) | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -172,23 +211,21 @@ def renew_other_files(): | |||||||
| def publish_sevises(): | def publish_sevises(): | ||||||
|     """Publish services""" |     """Publish services""" | ||||||
|  |  | ||||||
|     # publish a services |     for ib_data in info_base_list: | ||||||
|     call(' '.join(helper.web_publish_command( |         if ib_data[ib_prop.a_name] != '': | ||||||
|         host_name, 'adm', False, 'zoneless', 'sm')), remote=False) |             call(' '.join(helper.web_publish_command( | ||||||
|     call(' '.join(helper.web_publish_command( |                 host_name=host_name, | ||||||
|         host_name, 'smtl', False, 'withzone')), remote=False) |                 conf_name=ib_data[ib_prop.a_name], | ||||||
|     call(' '.join(helper.web_publish_command( |                 internal=False, | ||||||
|         host_name, 'sa', False, 'zoneless')), remote=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( | ||||||
|     call(' '.join(helper.web_publish_command( |             host_name=host_name, | ||||||
|         host_name, 'sm', True, 'zoneless')), remote=False) |             conf_name=ib_data[ib_prop.int_name], | ||||||
|     call(' '.join(helper.web_publish_command( |             internal=True, | ||||||
|         host_name, 'smtl', True, 'zoneless')), remote=False) |             descriptor=ib_data[ib_prop.int_desc], | ||||||
|     call(' '.join(helper.web_publish_command( |             base_name=ib_data[ib_prop.name])), remote=False) | ||||||
|         host_name, 'sa', True, 'zoneless')), remote=False) |  | ||||||
|     call(' '.join(helper.web_publish_command( |  | ||||||
|         host_name, 'am', True, 'zoneless')), remote=False) |  | ||||||
|      |      | ||||||
|     # publish special services |     # publish special services | ||||||
|     call(' '.join(helper.web_publish_command( |     call(' '.join(helper.web_publish_command( | ||||||
| @@ -199,9 +236,8 @@ def publish_sevises(): | |||||||
|         'extreg', 'sm;Usr=ExtReg;Pwd=' + sup_password)), remote=False) |         'extreg', 'sm;Usr=ExtReg;Pwd=' + sup_password)), remote=False) | ||||||
|  |  | ||||||
|     # restart Apache |     # restart Apache | ||||||
|     call('docker exec web.' + host_name + |     call('docker exec web.{} chown -R usr1cv8:grp1cv8 /var/www'.format(host_name), remote=False) | ||||||
|          ' chown -R usr1cv8:grp1cv8 /var/www', remote=False) |     call('docker exec web.{} httpd -k graceful'.format(host_name), remote=False) | ||||||
|     call('docker exec web.' + host_name + ' httpd -k graceful', remote=False) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @print_description | @print_description | ||||||
| @@ -211,11 +247,11 @@ def set_full_host_name(is_new): | |||||||
|     global host_name |     global host_name | ||||||
|     if is_new: |     if is_new: | ||||||
|         part_host_name = helper.get_host_name(sys.argv) |         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.write(part_host_name) | ||||||
|         f.close() |         f.close() | ||||||
|     else: |     else: | ||||||
|         f = open(local_work_dir + 'hostname') |         f = open('.hostname') | ||||||
|         part_host_name = f.read() + host_name |         part_host_name = f.read() + host_name | ||||||
|         f.close() |         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) |     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 | @print_description | ||||||
| def configurate_site(): | 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), |     call('docker exec -t web.{0} curl --user Администратор: https://{0}/a/adm/hs/docker_control/update_appgate'.format(host_name), | ||||||
|         remote=False) |         remote=False) | ||||||
|  |  | ||||||
|  |  | ||||||
| @print_description | @print_description | ||||||
| def wait_postgres(): | def wait_postgres(): | ||||||
|     """Waiting for postgres""" |     """Waiting for postgres""" | ||||||
|  |  | ||||||
|     call('docker exec -t db.{} /wait_postgres.sh'.format(host_name), remote=False) |     call('docker exec -t db.{} /wait_postgres.sh'.format(host_name), remote=False) | ||||||
|  |  | ||||||
|  |  | ||||||
| @print_description | @print_description | ||||||
| def wait_site(): | def wait_site(): | ||||||
|     """Waiting for site""" |     """Waiting for site""" | ||||||
|  |  | ||||||
|     call('docker exec -t site.{} /wait_site.sh'.format(host_name), remote=False) |     call('docker exec -t site.{} /wait_site.sh'.format(host_name), remote=False) | ||||||
|  |  | ||||||
|  |  | ||||||
| @print_description | @print_description | ||||||
| def enable_job_in_sm(): | def enable_job_in_sm(): | ||||||
|     """Enable scheduled jobs 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), |     call('docker exec -t ras.{} deployka scheduledjobs unlock -db sm -db-user \'Администратор\''.format(host_name), | ||||||
|         remote=False) |         remote=False) | ||||||
|  |  | ||||||
|  |  | ||||||
| global_start_time = datetime.now() | global_start_time = datetime.now() | ||||||
| print('{}Fresh is starting{}'.format(colors.GREEN, colors.WHITE)) | 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 | new_server = '-new' in sys.argv | ||||||
| global_debug = '-debug' in sys.argv | global_debug = '-debug' in sys.argv | ||||||
|  |  | ||||||
| if new_server: |  | ||||||
|     renew_workdir() |  | ||||||
|     get_configurations_data() |  | ||||||
|  |  | ||||||
| set_full_host_name(new_server) | set_full_host_name(new_server) | ||||||
|  |  | ||||||
| if new_server: | if new_server: | ||||||
|  |     renew_workdir() | ||||||
|  |     get_configurations_data() | ||||||
|     renew_nginx_files() |     renew_nginx_files() | ||||||
|     renew_docker_compose() |     renew_docker_compose() | ||||||
|     renew_other_files() |     renew_other_files() | ||||||
| @@ -316,10 +362,7 @@ wait_postgres() | |||||||
|  |  | ||||||
| if new_server: | if new_server: | ||||||
|     publish_sevises() |     publish_sevises() | ||||||
|     prepare_new_ib('smtl') |     prepare_bases() | ||||||
|     prepare_new_ib('sa') |  | ||||||
|     prepare_new_ib('am') |  | ||||||
|     prepare_new_ib('sm', post_data='/mnt/other-files/params.json') |  | ||||||
|     enable_job_in_sm() |     enable_job_in_sm() | ||||||
|     create_db_site() |     create_db_site() | ||||||
|     create_db_forum() |     create_db_forum() | ||||||
| @@ -329,10 +372,7 @@ call(docker_compose_str + 'up -d nginx site', remote=False, silent=False) | |||||||
| wait_site() | wait_site() | ||||||
|  |  | ||||||
| if new_server: | if new_server: | ||||||
|     delete_control_extension('smtl', 'Admin', 'smtl') |     delete_all_control_ext() | ||||||
|     delete_control_extension('am', 'Администратор', 'am') |  | ||||||
|     delete_control_extension('sm', 'Администратор', 'sm') |  | ||||||
|     delete_control_extension('sa', None, 'sa') |  | ||||||
|     configurate_site() |     configurate_site() | ||||||
|     init_gate() |     init_gate() | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user