Spec-Zone.ru › Chef 18

Обновление сервера Chef Infra

[редактировать на GitHub]

Каждая новая версия сервера Chef Infra Server повышает надёжность и обновляет компоненты сторонних разработчиков, обеспечивая безопасность сервера. Важно поддерживать сервер Chef Infra Server в актуальном состоянии, чтобы обеспечить безопасную и надёжную работу Chef Infra в вашей организации.

Предупреждение

Перед обновлением производственного сервера убедитесь, что вы обновили тестовый сервер, чтобы подтвердить процесс.

Матрица обновлений

Если вы используете сервер Chef Infra Server 12.17.15 или более поздней версии, вы можете обновить его напрямую до последних версий сервера Chef Infra Server 14. Если вы используете версию ниже 12.17.15, вы должны выполнить поэтапное обновление, как описано ниже.

Используемая версия Обновить до версии Требуется лицензия Поддерживаемая версия
13 14 Да Да
12.17.15 14 Да Нет
12.3.0 12.17.15 Нет Нет
11 12.3.0 Нет Нет
Требуется лицензия
Сервер Chef Infra Server 13 и более поздние версии регулируются Лицензионным соглашением Chef. Вы должны принять эти условия при первом использовании сервера Chef Infra Server, введя Yes при запросе.
Поддерживаемая версия
Сервер Chef Infra Server 14 и более поздние версии поддерживаются выпусками Chef Software. Более ранние версии не поддерживаются. Дополнительную информацию о поддерживаемых выпусках Chef Software см. в документации Поддерживаемые версии.

Шаги, зависящие от версии

Обновление до 14.x

В Chef Infra Server 14.0 индекс поиска переключился с Solr на Elasticsearch. Процесс обновления сервера Chef Infra Server 14 требует остановки сервера, установки нового пакета и последующего обновления сервера, включая автоматическую переиндексацию Elasticsearch для существующих пользователей Solr. Мы оцениваем, что операция переиндексации займёт 2 минуты на каждые 1000 узлов, но она может занять больше времени в зависимости от аппаратного обеспечения вашего сервера и сложности данных Chef.

Обновление сервера Chef Infra Server 14 не автоматически переиндексирует существующие внешние установки Elasticsearch.

Обновление до 14.8

Обновление сервера Chef Infra Server 14.8 обновляет PostgreSQL с версии 9.6 до 13.3. Процесс обновления 14.8 требует однократной остановки для удаления, обновления и переиндексации базы данных. Весь процесс обновления занимает около одной минуты на каждые 1000 узлов (1000 узлов – это приблизительно 286 МБ). Этот процесс может занять больше времени в зависимости от аппаратного обеспечения вашего сервера и размера объектов узлов на вашем сервере Chef Infra Server.

Примечание

Установите атрибут postgresql['pg_upgrade_timeout'] в chef-server.rb для значения тайм-аута обновления. Установите это значение в зависимости от размера данных, где на каждые 1000 узлов (приблизительно 286 МБ) потребуется около одной минуты.
Подготовка базы данных
  1. Запустите VACUUM FULL на базе данных PostgreSQL, если у вас не настроено автоматическое вакуумирование. Этот процесс уменьшит размер базы данных, удалив ненужные данные, и ускорит миграцию. Операция VACUUM FULL занимает около 1-2 минут на гигабайт данных в зависимости от сложности данных и требует свободного места на диске, по крайней мере, размером с вашу базу данных.

       sudo su - opscode-pgsql
       /opt/opscode/embedded/bin/vacuumdb --all --full
    

    Затем вы должны увидеть вывод, подобный:

       vacuumdb: vacuuming database "bifrost"
       vacuumdb: vacuuming database "oc_id"
       vacuumdb: vacuuming database "opscode-pgsql"
       vacuumdb: vacuuming database "opscode_chef"
       vacuumdb: vacuuming database "postgres"
       vacuumdb: vacuuming database "template1"
    
  2. Создайте резервную копию базы данных PostgreSQL перед обновлением, чтобы вы могли восстановить полную базу данных до предыдущей версии в случае сбоя. Дополнительную информацию см. в разделе Резервное копирование и восстановление.

Шаги обновления

Следуйте инструкциям по обновлению сервера Chef Infra Server ниже.

Примечание

Оценки основаны на экземпляре AWS EC2 t3.2xlarge с 8 ядрами и 32 ГБ оперативной памяти, с 2 организациями, 3 пользователями, более 565 000 узлов, более 13 000 кулинарных книг, более 29 000 пакетов данных, более 274 000 сред и более 281 000 ролей.

Обновление до 12.17.15

Предупреждение

Обновите сервер Chef Infra Server и все дополнения до совместимых версий перед установкой insecure_addon_compat в false.

Начиная с версии 12.14, сервер Chef Infra Server по умолчанию отображает пароли внутри каталога /etc/opscode. Если вы используете сервер Chef Infra Server без дополнений или используете последние версии дополнений, вы можете установить insecure_addon_compat в false в `/etc/opscode/chef-server.rb`. Сервер Chef Infra Server запишет все учетные данные в одно место.

Дополнительную информацию о генерации паролей, включая список поддерживаемых версий дополнений, см. в разделе Управление учетными данными сервера Chef Infra Server.

Обновление до 12.3.0

Если вы используете версию сервера Chef Infra Server ниже 12.3.0, обратитесь в службу поддержки Chef для получения помощи по обновлению вашей установки сервера Chef Infra Server.

Процесс обновления сервера Chef Infra Server 14

Автономный сервер

Процесс обновления сервера Chef Infra Server 14 требует остановки сервера, установки нового пакета и последующего обновления сервера, включая автоматическую переиндексацию Elasticsearch для существующих пользователей Solr. Мы оцениваем, что операция переиндексации займёт 2 минуты на каждые 1000 узлов, но она может занять больше времени в зависимости от аппаратного обеспечения вашего сервера и сложности данных Chef.

  1. Выполните vacuumdb перед началом обновления:

    sudo su - opscode-pgsql
    /opt/opscode/embedded/bin/vacuumdb --all --full
    exit
    

    Вы должны увидеть вывод, подобный:

    vacuumdb: vacuuming database "bifrost"
    vacuumdb: vacuuming database "oc_id"
    vacuumdb: vacuuming database "opscode-pgsql"
    vacuumdb: vacuuming database "opscode_chef"
    vacuumdb: vacuuming database "postgres"
    vacuumdb: vacuuming database "template1"
    
  2. Создайте резервную копию данных сервера Chef Infra Server перед началом процесса обновления с помощью chef-server-ctl-backup. Запишите местоположение резервной копии (по умолчанию /var/opt/chef-backup). Обратите внимание, что сервер Chef Infra Server будет недоступен во время выполнения резервного копирования:

    sudo chef-server-ctl backup
    
  3. Убедитесь, что службы сервера Chef Infra Server работают:

    chef-server-ctl reconfigure
    
  4. Если вы уже используете версию 12.17.15 или выше, переходите к следующему шагу. В противном случае ознакомьтесь с матрицей обновлений и выполните поэтапное обновление.

    • Если вы используете Chef Infra Server 12.3.0, обновитесь до 12.17.15.
    • Если вы используете Chef Infra Server 11, сначала обновитесь до 12.3.0, а затем до 12.17.15.

    После выполнения поэтапного обновления до 12.17.15, переходите к следующему шагу.

  5. Загрузите нужную версию сервера Chef Infra Server с сайта загрузок сервера Chef Infra Server.

  6. Остановите сервер Chef Infra Server:

    chef-server-ctl stop || chef-server-ctl kill rabbitmq
    
  7. Установите пакет сервера Chef Infra Server:

    Установить с помощью dpkg:

    dpkg -iEG /path/to/chef-server-core-VERSION.deb
    

    Установить с помощью RPM Package Manager:

    rpm -Uvh --nopostun /path/to/chef-server-core-VERSION.rpm
    
  8. Обновите сервер и примите лицензию Chef Software, введя Yes в запросе:

    chef-server-ctl upgrade
    

    Принять лицензию и выполнить обновление одной командой:

    CHEF_LICENSE='accept' chef-server-ctl upgrade
    
  9. Если обновление не удалось, см. раздел по устранению неполадок при обновлении ниже.

    Если обновление прошло успешно, запустите сервер Chef Infra Server:

    chef-server-ctl start
    
  10. Обновление любых дополнений к серверу Chef Infra Server.

  11. После завершения процесса обновления протестируйте и проверьте работоспособность сервера.

  12. Очистите данные сервера Chef Infra Server, удалив старые данные:

    chef-server-ctl cleanup
    
  13. Переиндексируйте базу данных:

    sudo su - opscode-pgsql
    /opt/opscode/embedded/bin/reindexdb --all
    

    Вы должны увидеть вывод, подобный:

    reindexdb: reindexing database "bifrost"
    reindexdb: reindexing database "oc_id"
    reindexdb: reindexing database "opscode-pgsql"
    reindexdb: reindexing database "opscode_chef"
    reindexdb: reindexing database "postgres"
    reindexdb: reindexing database "template1"
    

Обновление завершено.

Примечание

Обратитесь к разделу шаги после обновления, если вы обновляетесь с версии до Chef Infra Server 14.8 до версии не ниже 14.8.

Устранение неполадок при сбое обновления

  1. Если обновление завершилось сбоем и у вас повреждён сервер Chef Infra Server и/или база данных, НЕ РИСКУЙТЕ ВАШЕЙ РЕЗЕРВНОЙ КОПИЕЙ БАЗЫ ДАННЫХ. Предпримите все необходимые шаги для сохранения резервной копии, включая её копирование на другой диск. Обратитесь к профессиональному системному администратору за инструкциями и рекомендациями.

  2. Обратитесь в службу поддержки.

  3. Переустановите исходную версию сервера Chef Infra Server, которую вы использовали до попытки обновления (если вам пришлось выполнить поэтапное обновление, установите исходную версию сервера Chef Infra Server до поэтапного обновления, а не любые версии, до которых вы обновлялись в процессе поэтапного обновления). Опять же, НЕ РИСКУЙТЕ ВАШЕЙ РЕЗЕРВНОЙ КОПИЕЙ БАЗЫ ДАННЫХ. Например, рассмотрите возможность использования отдельного диска для новой установки.

  4. Ознакомьтесь с документацией восстановления и восстановите базу данных из пути, где она была сохранена:

    chef-server-ctl restore /path/to/tar/archive.tar.gz
    

Внешний PostgreSQL

Следующие шаги по обновлению внешнего PostgreSQL предоставляются только в качестве справочного материала. Пользователь несёт ответственность за обновление и обслуживание любых конфигураций внешнего PostgreSQL.

Обновить сервер Chef Infra Server

  1. Войдите в систему на внешней машине PostgreSQL.

  2. Запустите vacuumdb перед началом обновления:

    sudo su postgres
    /usr/bin/vacuumdb --all --full
    exit
    
  3. Войдите в систему на машине Chef Infra Server.

  4. Проконсультируйтесь с документацией по knife-ec-backup.

    Установите knife-ec-backup, если оно ещё не установлено. Ниже приведён пример сессии (обратите внимание, что ваши действия могут отличаться в зависимости от версий программного обеспечения, топологии вашей установки, вашей операционной системы и дистрибутива, и ряда других факторов).

    Например:

    apt-get update
    apt install ruby
    apt install make
    curl -L https://chef.io/chef/install.sh | sudo bash -s -- -P chefdk
    export PATH=$PATH:/root/.chefdk/gem/ruby/2.6.0/bin
    apt-get -y install gcc postgresql libpq-dev
    /opt/chefdk/embedded/bin/gem install knife-ec-backup -- --with-pg-config=/opt/opscode/embedded/postgresql/9.6/bin/pg_config
    
  5. Настройте knife, если это ещё не сделано. Ниже приведён пример сессии (ещё раз обратите внимание, что ваши действия могут отличаться в зависимости от ряда факторов).

    Например:

    $ chef-server-ctl org-create 4thcafe 'Fourth Cafe, Inc.' --association_user janedoe --filename /tmp/4thcafe-validator.pem
    $ chef generate repo chef-repo
    $ cd chef-repo/
    $ mkdir -p .chef
    $ echo '.chef' >> .gitignore
    $ cp /tmp/4thcafe-validator.pem .chef
    $ cp /home/ubuntu/janedoe.pem .chef
    $ cd .chef
    $ knife configure
    WARNING: No knife configuration file found. See https://docs.chef.io/config_rb/ for details.
    Please enter the chef server URL: [https://1.2.3.4/organizations/myorg] https://1.2.3.4/organizations/4thcafe
    Please enter an existing username or clientname for the API: [ubuntu] janedoe
    $ knife ssl fetch
    
  6. Создайте резервную копию базы данных. Например:

    mkdir /backup
    /opt/chefdk/embedded/bin/knife ec backup /backup
    
  7. Если вы используете Chef Infra Server версии 12.17.15 или выше, перейдите к следующему шагу. В противном случае проконсультируйтесь с матрицей обновления и выполните поэтапное обновление.

    Если вы используете релиз Chef Infra Server, предшествующий 12.17.15, вы не можете напрямую обновить его до 14.8.X. Сначала необходимо выполнить поэтапное обновление.

    • Если вы используете Chef Infra Server 12.3.0, обновитесь до 12.17.15.
    • Если вы используете Chef Infra Server 11, сначала обновитесь до 12.3.0, а затем до 12.17.15.

    После выполнения поэтапного обновления вернитесь сюда и продолжите со следующего шага.

  8. Скачать необходимую версию Chef Infra Server.

  9. Остановите Chef Infra Server:

    chef-server-ctl stop || chef-server-ctl kill rabbitmq
    
  10. Установите пакет Chef Infra Server:

    Для установки с dpkg:

    dpkg -iEG /path/to/chef-server-core-VERSION.deb
    

    Для установки с помощью менеджера пакетов RPM:

    rpm -Uvh --nopostun --force /path/to/chef-server-core-VERSION.rpm
    
  11. Обновите Chef Infra Server и примите лицензию Chef Software, введя Yes в командной строке:

    chef-server-ctl upgrade
    

    Для принятия лицензии и обновления в одной команде:

    CHEF_LICENSE='accept' chef-server-ctl upgrade
    
  12. Если обновление завершилось неудачно, см. раздел по устранению неполадок при обновлении.

    Если обновление прошло успешно, запустите службы Chef Infra Server и выполните очистку.

    sudo chef-server-ctl start
    sudo chef-server-ctl cleanup
    

    Теперь обновление Chef Infra Server завершено. Перейдите непосредственно к разделу Обновление PostgreSQL.

Обновление PostgreSQL

  1. Войдите в систему на внешней машине PostgreSQL.

  2. Обновите пакеты и установите выбранную версию PostgreSQL. Пример (Ubuntu/PostgreSQL 13.3):

    sudo apt-get update
    sudo apt-get install postgresql-13
    
  3. Проверьте наличие различий в конфигурационных файлах. Убедитесь, что необходимо обновить новые конфигурационные файлы. Пример (PostgreSQL 13.3):

    diff /etc/postgresql/OLD_POSTGRESQL_VERSION/main/postgresql.conf /etc/postgresql/13/main/postgresql.conf
    diff /etc/postgresql/OLD_POSTGRESQL_VERSION/main/pg_hba.conf     /etc/postgresql/13/main/pg_hba.conf
    
  4. Остановите службу PostgreSQL.

    sudo systemctl stop postgresql.service
    
  5. Войдите как пользователь postgres.

    su postgres
    
  6. Убедитесь, что вы находитесь в каталоге, где можно выполнить команду pg_upgrade.

    Пример:

    cd /tmp
    
  7. Проверьте кластеры (обратите внимание на аргумент --check, это не изменит никакие данные). Пример (PostgreSQL 13.3):

    /usr/lib/postgresql/13/bin/pg_upgrade \
    --old-datadir=/var/lib/postgresql/9.6/main \
    --new-datadir=/var/lib/postgresql/13/main \
    --old-bindir=/usr/lib/postgresql/9.6/bin \
    --new-bindir=/usr/lib/postgresql/13/bin \
    --old-options '-c config_file=/etc/postgresql/9.6/main/postgresql.conf' \
    --new-options '-c config_file=/etc/postgresql/13/main/postgresql.conf' \
    --check
    
  8. Мигрируйте данные (без аргумента --check). Пример (PostgreSQL 13.3):

    /usr/lib/postgresql/13/bin/pg_upgrade \
    --old-datadir=/var/lib/postgresql/9.6/main \
    --new-datadir=/var/lib/postgresql/13/main \
    --old-bindir=/usr/lib/postgresql/9.6/bin \
    --new-bindir=/usr/lib/postgresql/13/bin \
    --old-options '-c config_file=/etc/postgresql/9.6/main/postgresql.conf' \
    --new-options '-c config_file=/etc/postgresql/13/main/postgresql.conf'
    
  9. Выйдите из учётной записи пользователя postgres.

    exit
    
  10. Поменяйте порты для старой и новой версий PostgreSQL. Пример (PostgreSQL 13.3):

    $ sudo vim /etc/postgresql/13/main/postgresql.conf
    # change "port = 5433" to "port = 5432"
    
    $ sudo vim /etc/postgresql/9.6/main/postgresql.conf
    # change "port = 5432" to "port = 5433"
    
  11. Запустите службу PostgreSQL.

    sudo systemctl start postgresql.service
    
  12. Войдите как пользователь postgres и подтвердите, что новая версия PostgreSQL верна. Пример (PostgreSQL 13.3):

    $ sudo su - postgres
    $ psql -c "SELECT version();"
                                                                       version
    ---------------------------------------------------------------------------------------------------------------------------------------------
     PostgreSQL 13.3 (Ubuntu 13.3-1.pgdg16.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609, 64-bit
    (1 row)
    
    
  13. Запустите reindexdb. Пример:

    $ /usr/bin/reindexdb --all
    reindexdb: reindexing database "bifrost"
    reindexdb: reindexing database "oc_id"
    reindexdb: reindexing database "opscode_chef"
    reindexdb: reindexing database "postgres"
    reindexdb: reindexing database "template1"
    
  14. Войдите в систему на машине Chef Infra Server.

  15. Проверьте состояние Chef Infra Server. PostgreSQL должен быть подключён.

    $ sudo chef-server-ctl status
    -------------------
     Internal Services
    -------------------
    run: bookshelf: (pid 15763) 219163s; run: log: (pid 16559) 228464s
    run: elasticsearch: (pid 15797) 219162s; run: log: (pid 16345) 228507s
    run: nginx: (pid 15901) 219162s; run: log: (pid 16745) 228452s
    run: oc_bifrost: (pid 15909) 219161s; run: log: (pid 16237) 228519s
    run: oc_id: (pid 15915) 219161s; run: log: (pid 16255) 228513s
    run: opscode-erchef: (pid 15948) 219160s; run: log: (pid 16673) 228458s
    run: redis_lb: (pid 15952) 219160s; run: log: (pid 16779) 228445s
    -------------------
     External Services
    -------------------
    run: postgresql: connected OK to 10.0.11.0:5432
    

Устранение неполадок при обновлении

  1. Если обновление завершилось неудачно и у вас повреждён Chef Infra Server и/или база данных, НЕ РИСКУЙТЕ ВАШЕЙ РЕЗЕРВНОЙ КОПИЕЙ БАЗЫ ДАННЫХ. Предпримите все необходимые шаги для сохранения резервной копии, включая копирование её на другой диск. Обратитесь к профессиональному системному администратору за инструкциями и лучшими практиками.

  2. Обратитесь в службу поддержки.

  3. Переустановите исходную версию Chef Infra Server, которую вы использовали перед попыткой обновления (если вам пришлось выполнить поэтапное обновление, установите исходную версию Chef Infra Server до поэтапного обновления, а не любые версии, до которых вы обновились в процессе поэтапного обновления). Ещё раз, НЕ РИСКУЙТЕ ВАШЕЙ РЕЗЕРВНОЙ КОПИЕЙ БАЗЫ ДАННЫХ. Например, рассмотрите возможность использования отдельного диска для новой установки.

  4. Проконсультируйтесь с документацией по knife-ec-restore, и восстановите базу данных из папки, где она была сохранена.

    Пример:

    /opt/chefdk/embedded/bin/knife ec restore /backup/
    
  5. Не продолжайте обновление PostgreSQL, пока у вас не будет неповреждённого Chef Infra Server и неповреждённой базы данных PostgreSQL.

Установка Chef Backend

Предупреждение

Chef Backend устарел и больше не поддерживается. Обратитесь к своему представителю Chef по вопросам миграции на Chef Automate HA.

Этот документ больше не поддерживается.

Chef Infra Server может работать в конфигурации высокой доступности, обеспечивая автоматическое распределение нагрузки и резервирование состоятельных компонентов в архитектуре системы.

Для обновления вашей установки Chef Backend см. Высокая доступность: Обновление до Chef Backend 2.

Иерархическая установка

Этот раздел описывает процесс обновления с конфигурации иерархического сервера.

Примечание

Эти инструкции предназначены для топологии Chef Infra Server tier. Для получения последней информации о настройке кластера серверов высокой доступности см. Высокая доступность: Кластер Backend.

Шаги по обновлению иерархической конфигурации

Для обновления Chef Infra Server в иерархической конфигурации Chef Infra Server выполните следующие действия:

  1. Создайте резервную копию данных Chef Infra Server перед началом процесса обновления, используя knife-ec-backup.

  2. Подтвердите работоспособность служб Chef Infra Server:

    chef-server-ctl reconfigure
    
  3. Загрузите необходимую версию Chef Infra Server с страницы Загрузки Chef Infra Server, затем скопируйте её на каждый сервер.

  4. Остановите все серверы front end:

    chef-server-ctl stop
    
  5. Установите пакет Chef Infra Server на все серверы:

    Для установки с dpkg:

    dpkg -i /path/to/chef-server-core-<version>.deb
    

    Для установки с помощью менеджера пакетов RPM:

    rpm -Uvh --nopostun /path/to/chef-server-core-<version>.rpm
    
  6. Остановите сервер back end:

    chef-server-ctl stop
    
  7. Обновите сервер и примите лицензию Chef Software, введя Yes в командной строке:

    chef-server-ctl upgrade
    

    Для принятия лицензии и обновления в одной команде:

    CHEF_LICENSE='accept' chef-server-ctl upgrade
    
  8. Скопируйте весь каталог /etc/opscode с сервера back end на все серверы front end:

    scp -r /etc/opscode <each server's IP>:/etc
    
  9. Обновите каждый из серверов front end:

    chef-server-ctl upgrade
    
  10. Выполните следующую команду на серверах front end и back end:

    chef-server-ctl start
    
  11. Обновить любые дополнения Chef Infra Server.

  12. После завершения процесса обновления протестируйте и проверьте работоспособность сервера.

  13. Очистите сервер, удалив старые данные:

chef-server-ctl cleanup

Примечание

Проверьте шаги после обновления, если вы обновляетесь с версии Chef Infra Server 14.8 или ниже на версию 14.8 или выше.

Обновление дополнения Manage

Chef Manage — это консоль управления пакетами данных, атрибутами, списками выполнения, ролями, средами и кулинарными книгами из веб-интерфейса.

Chef Infra Server 14 поддерживает дополнение Chef Manage. Это дополнение устарело и достигнет конца жизненного цикла 31 декабря 2022 года. После обновления Chef Infra Server переустановите дополнение, а затем перенастройте Chef Infra Server и дополнение.

Использование Downloads.chef.io

Команда install по умолчанию загружает пакеты из https://packages.chef.io. Для систем, не защищённых брандмауэром (и имеющих доступ к https://packages.chef.io), эти пакеты можно установить, как описано ниже.

  1. Установка дополнений

    Установите Chef Manage с:

    sudo chef-server-ctl install chef-manage
    
  2. Перенастройка сервера

    sudo chef-server-ctl reconfigure
    
  3. Перенастройка дополнений

    Перенастройте Chef Manage с:

    sudo chef-manage-ctl reconfigure
    

Наконец, примите лицензию Chef:

sudo chef-manage-ctl reconfigure --accept-license

Использование локальных пакетов

Используйте подкоманду install с опцией --path, чтобы установить дополнение Chef Manage (chef-manage) для Chef Infra Server.

sudo chef-server-ctl install PACKAGE_NAME --path /path/to/package/directory

Например:

sudo chef-server-ctl install chef-manage --path /root/packages

Команда chef-server-ctl установит первый пакет chef-manage, найденный в каталоге /root/packages.

© Chef Software, Inc.
Licensed under the Creative Commons Attribution 3.0 Unported License.
The Chef™ Mark and Chef Logo are either registered trademarks/service marks or trademarks/servicemarks of Chef, in the United States and other countries and are used with Chef Inc's permission.
We are not affiliated with, endorsed or sponsored by Chef Inc.
https://docs.chef.io/server/upgrades/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API