Вступление
Strider CD - это платформа для непрерывного развертывания с открытым исходным кодом. Приложение написано в Node.js и использует MongoDB в качестве бэкэнда хранилища. Strider поддерживается множеством плагинов, которые добавляют различные функции в приложение.
Требования
Убедитесь, что ваша система обновлена.
sudo apt-get update && sudo apt-get upgrade -y
Шаг 1: Установите Node.js и NPM
Nodesource предоставляет готовые двоичные файлы для Node.js, которые можно установить непосредственно с помощью диспетчера пакетов ОС. Настройте репозиторий Nodesource.
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
Установите Node.js.
sudo apt-get install -y nodejs
Node.js также устанавливает NPM вместе с ним. Убедитесь, что Node.js и NPM успешно установлены.
strider@vultr:~$ node -v
v10.15.3
strider@vultr:~$ npm -v
6.4.1
Шаг 2: Установите Git и node-gyp
Git поставляется предварительно установленным в большинстве экземпляров Vultr. Тем не менее, вы можете убедиться, что он установлен и обновлен.
sudo apt-get install -y git
Install node-gyp, который является родным дополнением Node.js.
sudo npm install -g node-gyp
Шаг 3: Установите MongoDB
Импортируйте открытый ключ GPG MongoDB, чтобы гарантировать установку неизмененных пакетов.
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
Добавьте файл репозитория MongoDB.
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
Обновите кэш системного репозитория и установите последнюю версию MongoDB.
sudo apt-get update
sudo apt-get install -y mongodb-org
Запустите MongoDB и включите его автоматический запуск во время загрузки.
sudo systemctl start mongod
sudo systemctl enable mongod
Шаг 4: Установите аутентификацию MongoDB
Откройте оболочку MongoDB, выполнив mongoкоманду. Вы увидите следующий вывод.
strider@vultr:~/strider$ mongo
MongoDB shell version v4.0.8
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("a06b2797-6f58-43e1-8a41-c6401edb5083") }
MongoDB server version: 4.0.8
Welcome to the MongoDB shell.
...
Переключиться на adminбазу данных.
use admin
Создайте пользователя с правами администратора. Не забудьте заменить имя пользователя adminи пароль StrongPasswordна ваш предпочтительный выбор.
db.createUser(
  {
    user: "admin",
    pwd: "StrongPassword",
    roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
  }
)
Выйдите из оболочки Монго, нажав CTRL+ C.
Откройте файл конфигурации.
sudo nano /etc/mongod.conf
Найдите строку с закомментированным словом #security:и замените ее следующим текстом.
security:
  authorization: "enabled"
Сохраните файл и выйдите из редактора. Перезапустите сервер MongoDB.
sudo systemctl restart mongod
Шаг 5: Установите Strider
Клонируйте хранилище Strider из Github.
cd ~
git clone https://github.com/Strider-CD/strider.git
Установите Node.js зависимости.
cd ~/strider
npm install
Войдите в оболочку Mongo еще раз, чтобы создать базу данных для Strider.
mongo
Аутентифицируйте ваш сеанс Mongo с учетными данными, которые вы создали ранее.
use admin
db.auth("admin", "StrongPassword" )
Создайте нового пользователя базы данных для Strider и назначьте его для имени базы данных strider. Обязательно измените пароль striderpwв приведенной ниже команде.
use strider
db.createUser({user: "strider", pwd: "striderpw", roles: [{role: "dbOwner", db: "strider"}]})
Выйдите из оболочки Монго, нажав CTRL+ C.
Создайте пользователя-администратора для Strider, выполнив следующую команду.
DB_URI="mongodb://strider:striderpw@localhost:27017/strider" node bin/strider addUser
Предоставьте необходимую информацию, запрашиваемую сценарием. Вам будет предложено ввести адрес электронной почты и новый пароль.
strider@vultr:~/strider$ DB_URI="mongodb://strider:striderpw@localhost:27017/strider" node bin/strider addUser
Connecting to MongoDB URL: mongodb://strider:striderpw@localhost:27017/strider
Enter email []: [email protected]
Enter password []: ****
Is admin? (y/n) [n]y
Email:        [email protected]
Password:    ****
isAdmin:    y
OK? (y/n) [y]y
User created successfully! Enjoy.
Шаг 6: Управление процессом Node.js с помощью PM2
Установите PM2 с помощью NPM.
sudo npm install pm2 -g
Создайте файл конфигурации PM2 для своего приложения Strider.
cd ~/strider && nano ecosystem.config.js
Заполните файл следующей конфигурацией. Обязательно замените пример IP 203.0.113.1реальным IP-адресом вашего экземпляра Vultr.
module.exports = {
  apps : [{
    name   : "strider",
    script : "npm",
    args : "start",
    env: {
      "NODE_ENV": "production",
      "DB_URI": "mongodb://strider:striderpw@localhost:27017/strider",
      "SERVER_NAME": "http://203.0.113.1:3000",
      "HOST": "0.0.0.0",
      "PORT": "3000"
    }
  }]
}
Запустите ваше приложение.
pm2 start ecosystem.config.js
Чтобы убедиться, что ваш экземпляр Strider автоматически запускается после перезагрузки, выполните следующую команду.
pm2 startup
Откройте браузер и перейдите туда, http://203.0.113.1:3000где 203.0.113.1находится ваш фактический IP-адрес Vultr. Войдите в систему, используя администратора, которого вы создали для Stride.