Подготовка инсталлятора
Дистрибутив распространяется по приватной ссылке или на физическом носителе.
Дистрибутив состоит из следующих частей:
-
Архивы:
- Архив файлов, необходимых для запуска изолированного Nexus-сервиса.
- Архив Ansible playbooks и ролей, необходимыми для инсталлятора.
- Архив генератора инвентори под различные ОС.
-
Документация на Платформу.
Подготовьте необходимые архивы:
-
Скачайте архивы, необходимые для установки Платформы, в домашнюю директорию пользователя с настроенным беспарольным SSH-доступом (например,
ansible—/home/ansible/). -
Перейдите на деплой-ноду, переименуйте или удалите репозитории по умолчанию:
$ ls -1 /etc/yum.repos.d/ | sudo xargs -i mv /etc/yum.repos.d/{} /etc/yum.repos.d/{}.bak$ sudo yum clean all$ cd ~$ lsdocs_box-<RELEASE_NAME>.tar.gzdocs_box-<RELEASE_NAME>.tar.gz.sha1suminvgen_box-<RELEASE_NAME>.tar.gzinvgen_box-<RELEASE_NAME>.tar.gz.sha1sumnexus-box-<RELEASE_NAME>.tarnexus-box-<RELEASE_NAME>.tar.listnexus-box-<RELEASE_NAME>.tar.sha1sumrepos_mcs_distr_box-<RELEASE_NAME>.tar.gzrepos_mcs_distr_box-<RELEASE_NAME>.tar.gz.sha1sumгде
<RELEASE_NAME>— название релиза. -
Распакуйте архивы.
Состав архива дистрибутива:
nexus-box-${RELEASE_NAME}.tar— основной архив.nexus-box-${RELEASE_NAME}.tar.list— список архивов и файлов основного архиваnexus-box-${RELEASE_NAME}.nexus-box-${RELEASE_NAME}.tar.sha1sum— чек-сумма основного архива.repos_mcs_distr_box-${RELEASE_NAME}.tar.gz— плейбуки для установки и конфигурации облака, а так же ряд вспомогательных инструментов.repos_mcs_distr_box-${RELEASE_NAME}.tar.gz.sha1sum— чек-сумма архива с плейбуками.invgen_${RELEASE_NAME}.tar.gz— генератор inventory для первичной настройкиinventory.invgen_${RELEASE_NAME}.tar.gz.sha1sum— чек-сумма архива с генератором inventory.docs_box-${RELEASE_NAME}.tar.gz— архив с документацией.docs_box-${RELEASE_NAME}.tar.gz.sha1sum— чек-сумма архива с документацией.
-
Проверьте чек-суммы:
$ sha1sum docs_box-*.tar.gz;cat docs_box-*.tar.gz.sha1sum; sha1sum invgen_box-*.tar.gz; cat invgen_box-*.tar.gz.sha1sum; sha1sum nexus-box-*.tar; cat nexus-box-*.tar.sha1sum; sha1sum repos_mcs_distr_box-*.tar.gz; cat repos_mcs_distr_box-*.tar.gz.sha1sum32a6e33f9e2dbcb1895e9afd2df4ea022f6b7867 docs_box-<RELEASE_NAME>.tar.gz32a6e33f9e2dbcb1895e9afd2df4ea022f6b7867 docs_box-<RELEASE_NAME>.tar.gz2880b4c1ad685291925d9e994009633e1b60882f invgen_box-<RELEASE_NAME>.tar.gz2880b4c1ad685291925d9e994009633e1b60882f invgen_box-<RELEASE_NAME>.tar.gz47e0b706bc3d7ea1bdcb34d7cc6e8349e75f986a nexus-box-<RELEASE_NAME>.tar47e0b706bc3d7ea1bdcb34d7cc6e8349e75f986a nexus-box-<RELEASE_NAME>.tar9541f635daf347deedfa9dd8e25f500f2a4d6e1f repos_mcs_distr_box-<RELEASE_NAME>.tar.gz9541f635daf347deedfa9dd8e25f500f2a4d6e1f repos_mcs_distr_box-<RELEASE_NAME>.tar.gz
Распакуйте архив nexus-box-${RELEASE_NAME}.tar:
$ RELEASE_NAME='4.0'$ tar -xf nexus-box-${RELEASE_NAME}.tar$ cd nexus-box-${RELEASE_NAME}
Чтобы удалить исходный архив, выполните команду:
$ rm -rf ~/nexus-box-${RELEASE_NAME}.tar
Состав архива:
docker-rpms.tar.gz— архив в rpm-пакетами сервиса Docker для оффлайн-установки.nexus3_3.40.1.tar.gz— Docker-образ Nexus, сохранённый в архиве.volume-nexus.tar.gz— архив с данными для Nexus.run_nexus.sh— скрипт запуска Nexus.
-
Установите на деплой-ноду Docker-сервис:
$ tar xvf docker-rpms.tar.gz$ sudo yum install -y ./docker-ce/*.rpm -
Запустите сервис Docker и проверьте его запуск. Статус должен быть
active (runnung):$ sudo systemctl restart docker$ systemctl status dockerdocker.service - Docker Application Container EngineLoaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled)Active: active (running) since Wed 2023-10-18 16:52:23 MSK; 6 days agoTriggeredBy: ● docker.socketDocs: https://docs.docker.comMain PID: 33219 (dockerd)Tasks: 9Memory: 37.1MCPU: 1min 41.510sCGroup: /system.slice/docker.service└─33219 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sockЧтобы удалить исходный архив Docker и его распаковку, выполните команду:
$ rm -rf docker-ce docker-rpms.tar.gz -
Запустите скрипт
run_nexus.shпод sudo с указанием версии и сохранением вывода в файле~/run_nexus.out:$ sudo ./run_nexus.sh ${RELEASE_NAME} | tee ~/run_nexus.out
Чтобы проверить работоспособность Docker, выполните команду:
$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMESbf38a127b456 sonatype/nexus3:3.40.1 "sh -c ${SONATYPE_DI…}" 5 hours ago Up 5 hours nexus3-box-4.0
Чтобы проверить репозитории Nexus:
-
Проверьте работоспособность портов
8081,5553и6663:$ ss -ltn | grep -E "8081|5553|6663" -
Проверьте, отвечает ли Nexus на запросы.
Для этого проверьте список репозиториев по порту 8081:
$ curl -s 127.0.0.1:8081/service/rest/v1/repositoriesПример ожидаемого результата[ {"name" : "public-mcs-helm","format" : "helm","type" : "hosted","url" : "http://127.0.0.1:8081/repository/public-mcs-helm","attributes" : { }}, {"name" : "magnum-helm","format" : "helm","type" : "hosted","url" : "http://127.0.0.1:8081/repository/magnum-helm","attributes" : { }}, {"name" : "raw-repo","format" : "raw","type" : "hosted","url" : "http://127.0.0.1:8081/repository/raw-repo","attributes" : { }}, {"name" : "magnum-registry",... -
Запросите список Docker-образов Nexus по порту 5553:
$ curl 127.0.0.1:5553/v2/_catalogПример ожидаемого результата{"repositories":["beats/filebeat","beats/metricbeat","corpcloud/cni","corpcloud/consul-k8s","corpcloud/coredns","corpcloud/envsubst","corpcloud/k8s-dns-node-cache","corpcloud/kube-controllers","corpcloud/node","corpcloud/pause","corpcloud/pod2daemon-flexvol","iaas/ghosts","iaas/keystone-govcloud","iaas/sdn-proxy-redos","infra/back/api-gateway/admin-govcloud",...
Чтобы проверить работоспособность Ansible, выполните команду: ansible --version.
ansible 2.9.27config file = Noneconfigured module search path = [u'/home/redos/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']ansible python module location = /usr/lib/python2.7/site-packages/ansibleexecutable location = /bin/ansiblepython version = 2.7.5 (default, Nov 16 2020, 22:23:17) [GCC 4.8.5 20150623 (Red Hat 4.8.5-44)]
После успешного запуска сервисов Docker, Nexus и Ansible подготовьте параметры для инсталляции (подробнее — в разделе Подготовка параметров для инсталляции).