По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В прошлой статье мы рассмотрели, как создавать в амазоне инстансы с помощью Terraform. В данной статье мы рассмотрим, как изменять то, что мы создали в облаке.
Из прошлой статьи у нас есть работающий сервер в амазоне, теперь нам необходимо изменить его параметры.
Допустим мы решили, что нам одного сервера недостаточно и нам понадобился еще один сервер. Мы можем внести изменение. Вместо count 1, подставим значение 2.
Сохраняем изменение в файле. Пробуем запустить, команду которая покажет, что у нас произойдет - terraform plan.
Мы видим, что в результате наших действий, будет добавлен еще один сервер. Запускаем на выполнение terraform apply. Не забываем, что необходимо подтвердить наше действие напечатав yes.
Мы можем увидеть, что в результате наших действий изменилось количество бегущих серверов. Теперь их 2 штуки.
Следующий шаг. Давайте попробуем изменить, размер сервера. У нас был t2.micro, возьмем немного побольше сервер t3.micro и уберем один лишний сервер изменив параметр count c 2 на 1.
Вводим команду terraform plan и видим, что один сервер будет уничтожен, а второй будет изменен.
Ну и стандартное уже terraform apply с подтверждением своих действий. Перейдем в консоль амазон и посмотрим, что происходит.
Амазон, в соответствии с произведёнными изменениями меняет размер виртуального сервера и уничтожает лишний. Теперь, можно посмотреть в официальной документации resource aws_instance, те параметры, которые можно изменять таким нехитрым образом в амазон с помощью Terraform.
Давайте добавим так, чтобы обозначить, например, сервер. На старице в официальной документации, было показано, что внутрь ресурса надо добавить.
tags = {
Name = "Vasya"
}
И отправляем изменения в амазон terraform apply. На выходе мы получим.
Сервер с именем Vasya. По факту мы не сделали ничего нового, просто изменили пустые параметры, грубо говоря просто подписали, добавили tags. Tags имеет смысл добавлять к каждому развертываемому серверу, потому что в крупных проектах, когда серверов более 100, а то и пол тысячи, будет очень легко запутаться и в параметрах и в запущенных серверах. В этом случае tag или по-другому метки, нас выручат очень хорошо.
Обратите внимание, когда мы вносим, какое-либо изменение в код, то при выводе результата команды terraform plan, на против планируемых изменений мы видим знак + зеленый если добавляется что-то или знак - красный если мы, что-то убираем.
Еще не мало важный фактор. Нельзя вносить изменения в сервера, в ручном режиме через консоль, которые мы обслуживаем с помощью Terraform. Все, изменения, которые вы внесете в ручном режиме, будут удалены при синхронизации, потому что данных параметров нет в коде.
Следовательно, исходя из этого принципа, удалять ресурсы тоже необходимо через код. Делается это достаточно просто, просто необходимо удалить ресурс из кода или поставить параметр count = 0 внутри ресурса.
В нашем примере я изменил параметр count = 0. И можно видеть, что Terraform сообщил нам о том, что сервер будет уничтожен в облаке.
И действительно, если мы посмотрим в консоль, то мы увидим, что все сервера в облаке находятся в состоянии terminated, в течении полутора минут.
Это означает, что данные сервера выключены и готовятся к удалению. Если у нас несколько серверов предназначен для удаления, то Terraform будет производить выключение и последующее удаление данных серверов параллельно.
Благодаря Linux, у нас есть очень много инструментов облегчающих администрирование и диагностику сети. В этом плане команда PING является одним из самых полезных инструментов для системных и сетевых администраторов.
Сама базовая возможность этой утилиты – определить доступен ли тот или иной хост. Тем не менее в этом материале мы приведем примеры расширенных возможностей этой команды в системе Linux.
Про Linux за 5 минут | Что это или как финский студент перевернул мир?
Команда sudo - одна из самых популярных команд, доступных в Linux. Она позволяет пользователям выполнять команды от имени другого пользователя, который по умолчанию настроен на запуск от имени пользователя root.
У вас есть два варианта предоставления пользователю доступа к sudo. Первый - добавить пользователя в файл sudoers. Этот файл содержит информацию, которая определяет, каким пользователям и группам предоставляются привилегии sudo, а также уровень привилегий.
Второй вариант - добавить пользователя в группу sudo, определенную в файле sudoers. По умолчанию в дистрибутивах на основе RedHat, таких как CentOS и Fedora, членам группы «wheel» предоставляются привилегии sudo.
Добавление пользователя в группу wheel
Самый простой способ предоставить пользователю привилегии sudo в CentOS - это добавить пользователя в группу «wheel». Члены этой группы могут запускать все команды через sudo и получать запрос на аутентификацию по паролю при использовании sudo.
Мы предполагаем, что пользователь уже существует. Если вы хотите создать нового sudo пользователя, то посмотрите как это сделать в этой статье.
Чтобы добавить пользователя в группу, выполните приведенную ниже команду от имени пользователя root или другого пользователя sudo. Измените «username» на имя пользователя, которому вы хотите предоставить разрешения.
usermod -aG wheel username
Предоставления доступа sudo с использованием этого метода достаточно для большинства случаев использования.
Чтобы проверить доступ к sudo, запустите команду whoami:
sudo whoami
Вам будет предложено ввести пароль. Если у пользователя есть доступ к sudo, команда выведет «root». Если вы получаете сообщение «user is not in the sudoers file» (пользователь отсутствует в файле sudoers), это означает, что у пользователя нет привилегий sudo.
Добавление пользователя в файл sudoers
Привилегии sudo пользователей и групп настраиваются в файле /etc/sudoers. Добавление пользователя в этот файл позволяет вам предоставлять настраиваемый доступ к командам и настраивать пользовательские политики безопасности для пользователя.
Вы можете настроить доступ пользователя sudo, изменив файл sudoers или создав новый файл конфигурации в каталоге /etc/sudoers.d. Файлы внутри этого каталога включены в файл sudoers.
Чтобы отредактировать файл /etc/sudoers, используйте команду visudo. Эта команда проверяет файл на наличие синтаксических ошибок при его сохранении. Если есть какие-либо ошибки, файл не сохраняется. Если вы откроете файл в текстовом редакторе, синтаксическая ошибка может привести к потере доступа к sudo.
Обычно visudo использует vim для открытия /etc/sudoers. Если у вас нет опыта работы с vim, и вы хотите отредактировать файл с помощью nano, укажите:
EDITOR=nano visudo
А лучше прочитайте нашу статью про vim :-)
Допустим, вы хотите разрешить пользователю запускать команды sudo без запроса пароля. Откройте файл /etc/sudoers:
visudo
Прокрутите вниз до конца файла и добавьте следующую строку:
username ALL=(ALL) NOPASSWD:ALL
Сохраните файл и выйдите из редактора (подсказка - :wq). Не забудьте изменить «username» на имя пользователя, которому вы хотите предоставить доступ.
Другой распространенный пример - позволить пользователю запускать только определенные команды через sudo. Например, чтобы разрешить использовать только команды du и ping:
username ALL=(ALL) NOPASSWD:/usr/bin/du,/usr/bin/ping
Вместо того, чтобы редактировать файл sudoers, вы можете добиться того же, создав новый файл с правилами авторизации в каталоге /etc/sudoers.d. Добавьте то же правило, что и в файл sudoers:
echo "username ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/username
Такой подход делает управление привилегиями sudo более понятным. Название файла не важно. Это обычная практика, когда имя файла совпадает с именем пользователя.
Вывод
Предоставление пользователю доступа sudo - простая задача, все, что вам нужно сделать, это добавить пользователя в группу «wheel». Ну и не забыть как выходить из vim!