По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Продолжаем рассказывать про Terraform. Предыдущая статья тут. В данной статье мы разберем динамичные блоки кода в Terraform, которые можно использовать в своей работе. Данный функционал значительно облегчает написание кода Terraform с помощью которого мы управляем сервисами Amazon. В статье будет описан сценарий с генерацией кода Terraform.
Данный функционал был добавлен в terraform 0.12 версии. Для работы создадим новую директорию, можно путем копирования из предыдущего урока. Директорию назовем lesson-5. Для написания кода мы по-прежнему используем текстовый редактор Atom.
Мы можем создать файлик с именем DynamicSecurityGroup.tf или переименуем существующий webserver.tf если вы добавили папку путем копирования. Если вы создавали путем копирования отредактируем файл, убрав строчки, которые создают веб-сервер.
Удаляем. Теперь мы начнем писать код Terraform, чтобы у нас появилась динамическая группа безопасности.
В прошлой статье мы прописывали 2 правила. Данные правила открывали нам порты 80 и 22, аналогично можно прописать, чтобы открывался порт 443 ну или любой другой, который нам необходим для корректного инстанса и работоспособности сервиса.
А теперь представим, что нам необходимо открыть еще 20 разных портов. Можно сделать это с помощью copy-paste, т.е. копированием и вставкой уже существующих блоков кода с редактированием протокола и номеров портов. В terraform версии 0.12 добавили функционал и назвали его DynamicBlocks, что позволит генерировать кусочки кода в Terraform.
Добавим следующую часть кода:
dynamic "ingress" {
for_each = ["80", "443", "8080", "1541", "9092"]
content {
from_port = ingress.value
to_port = ingress.value
protocol = "tcp"
cidr_blocks = ["0.0.0.0/0"]
}
}
Разберем для лучшего понимания. Функция Dynamic, далее кавычки двойные и внутри мы пишем, что-будет динамическим, в нашем случае это функция Ingress. Открываем фигурные скобки и пишем цикл с помощью for_each = ["номерпорта1", "номерпорта2"] указывая номера портов. Следовательно, цикл for_each пройдется по каждому из параметров и будет применена конструкция content. Значения внутри конструкции content, будут заменены, а именно с какого порта на какой порт открывается доступ.
Далее в конструкции content описываем используемый протокол сетевого уровня и cider_blocks – с каких IP или диапазонов IP разрешено использовать данной правило. Конструкция 0.0.0.0/0 позволяет указать, что данное правило с данным портом разрешено использовать всему интернету вне зависимости от IP адреса. В целях информационной безопасности рекомендую использовать конкретные подсети или конкретные IP адреса, конечно, если это не публичный сервис.
Если посмотреть на пример, то написанное таким образом правило, сгенерирует нам 5 отдельных правил, т.е. получается достаточно удобно и сокращает нам количество строчек в коде, а также потенциально количество ошибок. Код становится более читаемым и легким.
После использования в коде функции dynamic, мы можем удалить все ставшие ненужными функции ingress. Не забывайте изменить имя ресурса. Это делается путем редактирования переменной name в разделе функции resource, для читаемости кода и удобства управления ресурсами в облаке AWS.
После того, как у нас готов наш код, мы можем его запустить. Так как, была создана новая папка, нам необходимо инициализировать ее использования. Переходим в необходимую директорию, в которой находится файл. И запускаем инициализацию стандартной командой terraform init. После ввода команды ожидаем пару минут, пока Terraform скачает все необходимые модули для подключения и работы. Следующей командой terraform apply мы запускаем код на исполнение. И получаем запрос на подтверждение операции. Среди вывода мы можем видеть:
Это значит что все порты, которые были указаны в аргументах будут созданы. Осталось подтвердить и дождаться успешного выполнения операции.
Формат файла ZIP уменьшает размер файлов, сжимая их в один файл. Этот процесс экономит дисковое пространство, шифрует данные и позволяет легко обмениваться файлами с другими. Вот как можно сжать и разархивировать файлы с помощью PowerShell.
Как архивировать файлы с помощью PowerShell
Начнем с сжатия некоторых файлов в ZIP-архив с помощью командлета Compress-Archive. Он берет путь к любым файлам, которые вы хотите сжать - несколько файлов разделяются запятой - и архивирует их в указанном месте назначения.
Сначала откройте PowerShell, выполнив поиск в меню «Пуск», а затем введите следующую команду, заменив PathToFiles и PathToDestination на путь к файлам, которые вы хотите сжать, а также на имя и папку, в которую вы хотите перейти, соответственно:
Compress-Archive -LiteralPath <PathToFiles> -DestinationPath <PathToDestination>
Когда вы указываете путь назначения, обязательно укажите имя файла архива, иначе PowerShell сохранит его как .zip.
Примечание. Кавычки вокруг пути необходимы только в том случае, если путь к файлу содержит пробел.
В качестве альтернативы, чтобы сжать все содержимое папки и все ее подпапки, вы можете использовать следующую команду, заменив PathToFolder и PathToDestination на путь к файлам, которые вы хотите сжать, а также на имя и папку, которую вы хотите. чтобы перейти соответственно:
Compress-Archive -LiteralPath <PathToFolder> -DestinationPath <PathToDestination>
В предыдущем примере мы указали путь к каталогу с несколькими файлами и папками без указания отдельных файлов. PowerShell берет все внутри корневого каталога и сжимает его, а также все подпапки.
Командлет Compress-Archive позволяет использовать подстановочный знак (*) для дальнейшего расширения функциональности. При использовании символа вы можете исключить корневой каталог, сжать только файлы в каталоге или выбрать все файлы определенного типа. Чтобы использовать подстановочный знак с Compress-Archive, вы должны использовать вместо этого параметр -Path, так как -LiteralPath не принимает их.
Выше мы рассмотрели, как включить корневой каталог и все его файлы и подкаталоги при создании архивного файла. Однако, если вы хотите исключить корневую папку из Zip-файла, вы можете использовать подстановочный знак, чтобы исключить ее из архива. Добавляя звездочку (*) в конец пути к файлу, вы указываете PowerShell только захватить то, что находится внутри корневого каталога. Это должно выглядеть примерно так:
Compress-Archive -Path C:path ofile* -DestinationPath C:path oarchive.zip
Далее, скажем, у вас есть папка с кучей файлов разных типов (.doc, .txt, .jpg и так далее), Но вы хотите сжать только один тип. Вы можете указать PowerShell архивировать их, не затрагивая явно. Обозначение команды будет выглядеть так:
Compress-Archive -Path C:path ofile*.jpg -DestinationPath C:path oarchive.zip
Примечание. Подкаталоги и файлы корневой папки не включаются в архив этим методом.
Наконец, если вам нужен архив, который сжимает файлы только в корневом каталоге и во всех его подкаталогах, вы должны использовать подстановочный знак «звезда-точка-звезда» (*. *) Для их сжатия. Это будет выглядеть примерно так:
Compress-Archive -Path C:path ofile*.* -DestinationPath C:path oarchive.zip
Примечание. Подкаталоги и файлы корневой папки не включаются в архив этим методом.
Даже после завершения архивирования вы можете обновить существующий заархивированный файл с помощью параметра -Update. Это позволяет заменять старые версии файлов в архиве новыми версиями с такими же именами и добавлять файлы, созданные в корневом каталоге. Это будет выглядеть примерно так:
Compress-Archive -Path C:path ofiles -Update -DestinationPath C:path oarchive.zip
Как распаковать файлы с помощью PowerShell
Помимо возможности архивировать файлы и папки, PowerShell имеет возможность разархивировать архивы. Процесс даже проще, чем их сжатие; все, что вам нужно, это исходный файл и место для данных, готовых к распаковке.
Откройте PowerShell и введите следующую команду, заменив PathToZipFile и PathToDestination на путь к файлам, которые вы хотите сжать, а также на имя и папку, в которую вы хотите перейти, соответственно:
Expand-Archive -LiteralPath <PathToZipFile> -DestinationPath <PathToDestination>
Папка назначения, указанная для извлечения файлов, будет заполнена содержимым архива. Если папка не существовала до разархивирования, PowerShell создаст папку и поместит содержимое в нее перед разархивированием.
По умолчанию, если вы пропустите параметр -DestinationPath, PowerShell разархивирует содержимое в текущий корневой каталог и использует имя файла Zip для создания новой папки.
В предыдущем примере, если мы опускаем -DestinationPath, PowerShell создаст папку «Архив» по пути C:Usersuser и извлечет файлы из архива в папку.
Если папка уже существует в месте назначения, PowerShell выдаст ошибку при попытке разархивировать файлы. Однако вы можете заставить PowerShell перезаписывать данные новыми, используя параметр -Force.
Вы должны использовать параметр -Force только в том случае, если старые файлы больше не нужны, поскольку это необратимо заменит файлы на вашем компьютере.
Область подкачки играет важную роль в производительности системы. Давайте узнаем, как определить размер области подкачки в вашей системе и как она используется.
Большинство из нас не часто задумываемся об области подкачки, если только мы не сталкиваемся с проблемой нехватки памяти в наших системах. Даже в этом случае изучение и оценка области подкачки в системе не является сложным, и знание того, что нормально для вашей системы, может помочь вам определить, когда что-то работает не так. Итак, давайте изучим некоторые команды, которые помогут вам заглянуть в область подкачки. Но сначала давайте рассмотрим некоторые базовые основы.
Что такое область подкачки и как она используется.
Область подкачки (swap space) – это дисковое пространство, которое действует как расширение памяти. Он используется, когда физическая память (ОЗУ) системы заполнена и системе требуется больше ресурсов памяти. Это называется «swap», потому что система перемещает некоторые неактивные страницы в памяти в область подкачки, чтобы можно было разместить больше данных в ОЗУ. Другими словами, это позволяет освободить оперативную память в загруженной системе.
Программы и данные используют оперативную память, потому что это единственный способ их обработки системой. Фактически, когда система загружается, она перемещает такие программы, как ядро и systemd, в оперативную память, чтобы начать работу.
Область подкачки может быть настроена как отдельный раздел диска или как файл. В наши дни большинство установок Linux создают раздел во время установки, и это является опцией. Однако вы можете создать файл подкачки и использовать его для подкачки.
Из-за нехватки области подкачки вы можете столкнуться с проблемой, называемой «перегрузкой», при которой программы и данные перемещаются между ОЗУ и областью подкачки так часто, что система работает очень медленно.
Вместе RAM и swap называются «виртуальной памятью».
Какой объем swap space необходим?
Раньше для области подкачки рекомендовали выбирать объем равный двойному размеру оперативной памяти, но это было в те времена, когда в системах не было столько оперативной памяти, как сегодня. Эти рекомендации для Ubuntu, но вероятно, должны работать и для других дистрибутивов:
Важно различать подкачку и подкачку с гибернацией. Система, которая переходит в спящий режим, немедленно сохраняет состояние вашей системы на жестком диске и выключается. Когда вы разбудите его (например, подняв "крышку" ноутбука), все запущенные вами программы вернутся в то состояние, в котором они находились, когда система перешла в спящий режим. Поэтому рекомендуется увеличить область подкачки. Но не все системы переходят в спящий режим.
Чтобы узнать, может ли ваша система перейти в спящий режим, выполните команду:
$ which pm-hibernate
/usr/sbin/pm-hibernate
Если на экран выведен ответ, показанный выше, значит ваша система готова к переходу в спящий режим. Вы можете проверить это, выполнив эту команду:
$ sudo pm-hibernate
Как можно просмотреть объем области подкачки в вашей системе Linux?
Используйте команду swapon --show, чтобы просмотреть область подкачки в вашей системе.
Еще одна полезная команда — это команда free, которая отображает как размер области подкачки, так и использование памяти. При использовании параметра -m результаты отображаются в МБ, а не в КБ.
Команда sar сообщает об использовании области подкачки
Обратите внимание, что в приведенных выше выходных данных команды free область подкачки используется скромно, хотя доступно много свободной памяти.
Вы также можете просмотреть раздел подкачки с помощью такой команды:
Когда необходима область подкачки?
Если в вашей системе много памяти, возможно, вам никогда не понадобится использовать область подкачки. Но почти всегда полезно иметь ее под рукой. Дисковое пространство относительно дешево по сравнению с памятью, и вы никогда не знаете, когда какой процесс увеличит нагрузку. С другой стороны, если ваша область подкачки интенсивно используется почти все время, вам, возможно, следует подумать о добавлении дополнительной оперативной памяти в систему, поскольку с ее использованием связаны некоторые затраты на производительность.
Создание файла подкачки.
Если вам нужно создать файл подкачки в системе Linux, используйте команду:
После создания файла измените права доступа к нему, запустите команду mkswap и используйте команду swapon -a, чтобы сделать его доступным, и команду swapon --show, чтобы убедиться, что он запущен.
Можно включать и выключать использование файла подкачки с помощью команд swapoff и swapon, хотя вы, возможно, захотите отключить подкачку, только если вы добавили раздел подкачки и хотите использовать его вместо файла подкачки.