Упражнение. Настройка среды песочницы

Завершено

В этом уроке вы настроите ресурсы, используемые в этом модуле. Создайте базовую архитектуру, состоящую из сервера, на котором размещается приложение, используемое клиентами. Сервер подключается к базе данных для хранения данных. Приложение выполняется на виртуальной машине. База данных недавно перенесена из базы данных SQL Server, работающей на виртуальной машине, в базу данных в службе База данных SQL Azure. Чтобы узнать, как защитить базу данных, настройте следующие ресурсы для использования в этом модуле:

  • Виртуальная машина Linux с именем appServer. Этот сервер выступает в качестве сервера приложений, к которому будут подключаться пользователи. Он должен подключиться к базе данных. Установите sqlcmd на виртуальной машине, чтобы имитировать приложение, работающее на сервере приложений , делая подключения к базе данных.
  • Логический сервер базы данных SQL Azure. Этот логический сервер необходим для размещения одной или нескольких баз данных.
  • База данных на логическом сервере с именем MarketplaceDb. Вы создаете ее с помощью демонстрационной базы данных AdventureWorksLT , чтобы с ними работали некоторые таблицы и данные. Эти данные включают в себя некоторые конфиденциальные данные, такие как адреса электронной почты и номера телефонов, которые вы хотите правильно защитить.

Создание базы данных SQL Azure

  1. Сначала настройте некоторые переменные. Замените значения ниже, показанные в скобках [], значениями по своему усмотрению. Должен [password] содержать по крайней мере восемь символов и содержать не менее трех из этих категорий: прописные символы, строчные буквы, цифры и нефазные цифры. Сохраните значение для последующего использования.

    export ADMINLOGIN='[ServerAdmin]'
    export PASSWORD='[password]'
    export SERVERNAME=[server-name]
    export RESOURCEGROUP=<rgn>[sandbox resource group name]</rgn>
    export LOCATION=$(az group show --name $RESOURCEGROUP | jq -r '.location')
    
  2. Выполните следующую команду, чтобы создать логический сервер базы данных SQL Azure.

    az sql server create \
        --name $SERVERNAME \
        --resource-group $RESOURCEGROUP \
        --location $LOCATION \
        --admin-user $ADMINLOGIN \
        --admin-password $PASSWORD
    
  3. Выполните следующую команду, чтобы создать базу данных с именем MarketplaceDb на созданном логическом сервере. Эта команда использует базу данных AdventureWorksLT в качестве шаблона, поэтому для работы с некоторыми предварительно заполненными таблицами.

    az sql db create --resource-group $RESOURCEGROUP \
        --server $SERVERNAME \
        --name marketplaceDb \
        --sample-name AdventureWorksLT \
        --service-objective Basic
    
  4. Выполните следующую команду, чтобы получить строка подключения для этой базы данных.

    az sql db show-connection-string --client sqlcmd --name marketplaceDb --server $SERVERNAME | jq -r
    

    Результат должен выглядеть примерно так. Оставить эту команду удобной, так как вам нужна эта команда для подключения к базе данных позже в этом модуле. Обратите внимание на [username] [password] заполнители в команде, которую вы хотите заменить ADMINLOGIN учетными данными, PASSWORD указанными ранее в переменных.

    sqlcmd -S tcp:server12345.database.windows.net,1433 -d marketplaceDb -U '[username]' -P '[password]' -N -l 30
    

Создание и настройка виртуальной машины Linux

Создайте виртуальную машину Linux, которая будет использоваться с помощью некоторых примеров.

  1. Выполните следующую команду для создания виртуальной машины. Выполнение этой команды может занять несколько минут.

    az vm create \
      --resource-group $RESOURCEGROUP \
      --name appServer \
      --image Ubuntu2204 \
      --size Standard_DS2_v2 \
      --public-ip-sku Standard \
      --generate-ssh-keys
    

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

    {
      "fqdns": "",
      "id": "/subscriptions/nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn/resourceGroups/learn-nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn/providers/Microsoft.Compute/virtualMachines/appServer",
      "location": "westus",
      "macAddress": "nn-nn-nn-nn-nn-nn",
      "powerState": "VM running",
      "privateIpAddress": "nn.nn.nn.nn",
      "publicIpAddress": "nnn.nnn.nnn.nnn",
      "resourceGroup": "learn-nnnnnnnn-nnnn-nnnn-nnnn-nnnnnnnnnnnn",
      "zones": ""
    }
    
  2. После успешного создания виртуальной машины подключитесь к ее общедоступному IP-адресу с помощью SSH.

    ssh nnn.nnn.nnn.nnn
    

    Где nnn.nnn.nnn.nnn — это значение publicIpAddress из предыдущего шага.

    Примечание.

    Обратите внимание на два момента. Во-первых, вам не нужен пароль, так как вы создали пару ключей SSH в рамках создания виртуальной машины. Во-вторых, при первом подключении оболочки к виртуальной машине вам будет предложено проверить подлинность узла. Это происходит, так как вы подключаетесь к IP-адресу вместо имени узла. Ответ "Да" сохраняет IP-адрес в качестве допустимого узла для подключения и позволяет продолжить подключение.

  3. Завершите работу, установив mssql-tools на виртуальной машине Linux, чтобы подключиться к базе данных через sqlcmd.

    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bash_profile
    echo 'export PATH="$PATH:/opt/mssql-tools18/bin"' >> ~/.bashrc
    source ~/.bashrc
    curl https://packages.microsoft.com/keys/microsoft.asc | sudo tee /etc/apt/trusted.gpg.d/microsoft.asc
    curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list | sudo tee /etc/apt/sources.list.d/mssql-release.list
    sudo apt-get update
    sudo ACCEPT_EULA=Y apt-get install -y mssql-tools18 unixodbc-dev
    

    Примечание.

    Много текста будет прокручиваться для некоторых из этих команд, поэтому убедитесь, что после окончательной команды выбран ввод , чтобы убедиться, что она выполняется.

Вы создали База данных SQL Azure логический сервер, базу данных на этом логическом сервере и виртуальную машину с именем appServer, которая имитирует сетевое подключение с сервера приложений. Затем ознакомьтесь с тем, как правильно защитить базу данных.