Как заполнять нулевую декларацию для ип: скачать бланк и образец заполнения УСН доходы и доходы минус расходы

Как заполнять нулевую декларацию для ип: скачать бланк и образец заполнения УСН доходы и доходы минус расходы

Содержание

образец, как заполнять, сроки и способы сдачи для ИП и ООО

Все компании и ИП на УСН обязаны раз в год сдавать налоговую декларацию — даже если они не вели деятельность.

Что такое нулевая декларация и кто обязан ее сдавать

Нулевая декларация — это декларация, в которой нет налоговой базы и налога к уплате.

Нулевую декларацию сдают компании или ИП, которые не ведут деятельность и у которых нет доходов и расходов. Так бывает, если, они, например, зарегистрировались в конце года и еще не начали работать либо ИП приостановил деятельность, но с учета сниматься не стал.

Еще сдавать нулевую декларацию обязаны ИП, которые ведут деятельность на патенте, а УСН у них как вторая система налогообложения — для подстраховки.

Какая отчетность на патенте

Чтобы узнать, работает ли ИП на упрощенке, нужно запросить в налоговой информационное письмо по форме № 26.2-7, которое подтвердит переход на спецрежим.

Как получить уведомление о переходе на УСН

Нулевую декларацию не сдают ИП, которые находятся на налоговых каникулах и работают. Они ведут деятельность, получают доходы и несут расходы, поэтому должны подавать обычную декларацию.

Какую декларацию сдают ИП на каникулах

Если у ИП или компании на УСН «Доходы минус расходы» были расходы, но не было доходов — подают частично заполненную декларацию, в которой отражают только расходы и полученный убыток. Она уже не будет считаться нулевой.

Нулевую декларацию сдают на том же бланке, что и обычную. Каких-то специальных форм для нее нет. Покажем дальше на примерах, как заполнить нулевые декларации для разных объектов УСН.

Как заполнить декларацию по УСН

Как заполнять нулевую декларацию по УСН «Доходы»

В нулевой декларации по УСН «Доходы» ООО и ИП заполняют:

титульный лист;
раздел 1.1;
раздел 2.1.1.

Титульный лист. Правила заполнения титульного листа прописаны в приказе налоговой. Собрали все требования в таблицу:

П.

2.1 Порядка, утв. приказом ФНС от 25.12.2020 № ЕД-7-3/958@

СтрокаКак заполнять
Налоговый периодВ клетках нужно проставить цифры: 34 — если ИП или ООО сдает отчет за прошлый год; 50 — при закрытии ИП или ООО
Код по месту учета или нахожденияКод зависит от организационно-правовой формы бизнеса. Нужно проставить цифры: 120 — для ИП; 210 — для ООО
КППИП ставит прочерк, так как КПП у него нет; ООО — указывает КПП
Номер корректировкиНужно проставить цифры: 0 — если компания или ИП подает первую декларацию за отчетный период; 1, 2, 3 — если подает уточненную декларацию, цифра означает номер уточненной декларации
Отчетный годНужно проставить цифры: 2021 — если отчитывается в 2022 году за 2021 год
Код налоговойЭто первые четыре цифры ИНН
ФИОФамилия, имя, отчество руководителя ООО или ИП, указывается с левого края, каждое слово с новой строки
Номер телефонаНомер без пробелов, скобок и прочерков
Количество страниц в заполненной декларацииНужно написать общее количество страниц декларации — например, 4
Количество листов приложенных документов (при наличии)Если декларацию подает представитель, то к ней нужно приложить доверенность. В таком случае в это поле надо вписать количество листов доверенности

В левом нижнем блоке указывают данные человека, который подает и подписывает декларацию:

«1» — если это сам предприниматель или директор компании;
«2» — если отчетность сдает его представитель, например бухгалтер.

Loading…

Пример заполнения титульного листа нулевой декларации по УСН «Доходы» для ООО «Сток Полимер»

Раздел 1.1. Тут заполняют только строку 010. В ней указывают свой код ОКТМО — код муниципального образования, где ИП или компания стоит на учете.

Узнать код ОКТМО на сайте налоговой

Остальные строки оставляют пустыми, если заполняют на компьютере, или ставят прочерки, если заполняют декларацию вручную.

Loading…

Пример заполнения раздела 1.1 нулевой декларации по УСН «Доходы»

Раздел 2.1.1. В нем заполняют уже больше строк.

В строке 101 указывают код признака применения налоговой ставки: «1» — если налоговая ставка 6% или другая сниженная по решению субъекта РФ.

В строке 102 предприниматели и компании с работниками ставят «1», ИП ставят «2», если у них нет сотрудников.

В строке 124 — обоснование применения льготной налоговой ставки. ИП или компания деятельность не вели, пониженную ставку не применяли, поэтому ставят прочерки.

В остальных строках — прочерки, если декларацию по УСН заполняют вручную. Если заполняют на компьютере, можно оставить пустые ячейки.

Loading…

Пример заполнения раздела 2.1.1 нулевой декларации по УСН «Доходы» для ООО «Сток Полимер»

Как заполнить нулевую декларацию по УСН «Доходы минус расходы»

В нулевой декларации по УСН «Доходы минус расходы» заполняют:

титульный лист;
раздел 1.2;
раздел 2.2.

Титульный лист заполняют так же, как и для УСН «Доходы».

В разделе 1.2 указывают свой код ОКТМО, а в остальных ячейках ставят прочерки.

В разделе 2. 2:

  • в строке 201 указывают «1», если компания или ИП применяет налоговую ставку 15% или другую ставку — сниженную по региональному закону;
  • в строках 260—263 указывают ставку налога за каждый отчетный и налоговый период;
  • в строке 264 — обоснование применения сниженной налоговой ставки по закону субъекта РФ;
  • в остальных строках ставят прочерки или оставляют пустыми.

Если у ИП или компании не было только доходов, а расходы были, например страховые взносы, — их нужно отразить в разделе 2.2 и сформировать убыток, который потом можно перенести на следующие годы.

Loading…

Пример заполнения раздела 2.2 нулевой декларации по УСН «Доходы минус расходы»

Какую еще отчетность нужно сдать на УСН, если компания или ИП не ведут деятельность

Кроме нулевой декларации, ИП не должны больше ничего сдавать, но обязаны вести книгу учета доходов и расходов — КУДиР. ООО обязаны вести КУДиР, а также вести и сдавать бухотчетность.

КУДиР. Если компания или ИП не работали в течение года, заполнять книгу все равно придется: нужно заполнить титульный лист, а по разделам проставить нули. Нулевую КУДиР нужно распечатать, пронумеровать, прошить и подписать. Сдают КУДиР только по запросу налоговой.

Скачать КУДиР

Бухгалтерская отчетность. Ее сдают только компании. Компании на УСН, относящиеся к малому бизнесу, могут сдавать упрощенную бухгалтерскую отчетность: бухгалтерский баланс и отчет о финансовых результатах.

Бухгалтерский баланс не будет нулевым. В нем как минимум нужно указать в пассиве — уставный капитал, а в активе — основные средства или деньги, которые внесли в уставный капитал.

В отчете о финансовых результатах нужно заполнить только шапку с данными о компании и поставить подпись.

Статистическая отчетность. Какие отчеты и когда нужно сдавать в Росстат, можно узнать в специальном сервисе.

Узнать про статистические отчеты

Если компания или ИП не работали, то и в статотчетности отражать нечего. Можно сдать нулевую статотчетность либо вместо нее отправить в Росстат уведомление о том, что в отчетном периоде нет показателей.

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

Шаблон уведомления

Можно не дожидаться требования отчитаться из Росстата и отправить уведомление об отсутствии показателей.

Loading…

Уведомление в Росстат составляется в свободной форме

Способы и сроки сдачи нулевой отчетности по УСН

Нулевую декларацию по УСН можно сдать:

  • в налоговой лично или через представителя;
  • заказным письмом с описью вложения;
  • онлайн через сервис сдачи отчетности.

Нулевая декларация по УСН сдается в те же сроки, что и обычная декларация:

  1. Для ИП — до 30 апреля. Так, декларацию за 2021 год нужно сдать до 30 апреля 2022 года. Это суббота, поэтому крайний срок сдачи переносится на следующий рабочий день — 4 мая 2022 года.
  2. Для компаний — до 31 марта. Декларацию за 2021 год надо сдать до 31 марта 2022 года.

Бухгалтерскую отчетность компании сдают в электронном виде — в налоговую по месту регистрации компании, до 31 марта. Например, отчетность за 2021 год нужно сдать до 31 марта 2022 года.

Зачем бизнесу ЭДО

Сроки сдачи статистической отчетности зависят от той формы, которую нужно сдать компании или ИП. Они указаны на сайте Росстата, рядом с названием конкретного отчета.

Loading…

Скрин с сайта службы государственной статистики — список отчетов и сроки Тинькофф Банка

Ответственность за непредставление отчетности

Если не сдать нулевую декларацию по УСН, то:

  • компанию или ИП могут оштрафовать на 1000 ₽;
  • директору организации, главному бухгалтеру могут вынести предупреждение или выпишут штраф — от 300 до 500 ₽.

Loading…

Как ИП заполнить декларацию по УСН в 2022 году — Контур.Экстерн

21 июня 2022

ИП на упрощенке ежегодно сдают декларацию по УСН. В 2022 году ее нужно представить по обновленной форме. Какие изменения произошли в отчете? Как заполнить декларацию по новым правилам? Обо всем этом рассказываем в статье.

Содержание

  • Что такое декларация по УСН для ИП
  • В каких случаях нужно сдавать декларацию 
  • Изменения в форме декларации в 2022 году
  • Срок сдачи декларации в 2022 году
  • Как заполнить новую форму 

Подготовить, проверить и сдать декларацию по УСН

Попробовать бесплатно

В отчете по УСН предприниматель показывает доход и исчисленный налог, размер которого проверяет ФНС. Состав декларации зависит от объекта налогообложения. 

«Доходы»«Доходы минус расходы»
Титульный лист
Раздел 1. 1 — итоговые налоговые платежиРаздел 1.2 — итоговые налоговые платежи
Раздел 2.1.1 — расчет налогаРаздел 2.2 — расчет налога
Раздел 2.1.2 — торговый сбор 

Раздел 3

Отчет о целевом использовании средств

ИП на УСН сдают декларацию всегда, а если в отчетном периоде не велась деятельность, то отправляют нулевой отчет, который содержит:

  • Титульный лист.
  • Раздел 1 — ОКТМО. 
  • Раздел 2 — Признак применения ставки, признак налогоплательщика и ставка налога.

ИП на налоговых каникулах также сдают декларацию по УСН, но с нулевой ставкой. 

За 2021 год отчет представляют по обновленной форме согласно приказу ФНС России от 25.12.2020 № ЕД-7-3/958@.

Список изменений:

  • введены новые штрих-коды;
  • с титульного листа убрали код по ОКВЭД;
  • увеличилось количество страниц, так как появились новые поля:
Признак применения налоговой ставки

Признак 1 — в течение всего года применялась стандартная ставка 6 % или 15 %

Признак 2 — в течение года хотя бы в одном квартале применялась повышенная ставка

Код налоговой льготыУказывается, если хотя бы в одном квартале была пониженная ставка

Сроки подачи новой формы остались без изменений.

  • По итогам года форма представляется до 30 апреля, а в 2022 году — до 4 мая, потому что 30 апреля совпадает с выходным днем.
  • При закрытии ИП — до 25 числа месяца, следующего за месяцем прекращения деятельности. 
  • При утрате применения УСН — до 25 числа месяца, следующего за кварталом, в котором было нарушение. 

Отчет по УСН состоит из титульного листа и шести разделов. 

На титульном листе указывают:

  • номер корректировки;
  • код налогового периода;
  • отчетный год;
  • код налоговой инспекции, где ИП стоит на учете;
  • код места нахождения;
  • ФИО ИП;
  • телефон для связи.

В Контур.Экстерне на титульном листе также можно указать объект налогообложения.

Разберем, как заполнить декларацию в Экстерне.

Для ИП с объектом налогообложения «Доходы»

Раздел 1.1
  • Укажите ОКТМО по месту жительства ИП в строке 010. Если ОКТМО менялся в течение года, то заполните его поквартально.  
  • Сумма авансов в строках 020, 040, 070 и сумма налога к уплате в строке 100 формируются автоматически на основании разделов 2.1.1 и 2.1.2.
  • В строке 101 заполните оплаченный налог по патентной системе налогообложения, если ИП совмещал УСН и ПСН и потерял право на патент (п. 7 ст. 346.45 НК РФ).

Сдать декларацию по УСН в срок и без ошибок

Узнать больше

Раздел 2.1.1

В строке 101 заполните код признака применения налоговой ставки, а в строке 102 — признак налогоплательщика:

  • признак 1 — для ИП с наемными сотрудниками;
  • признак 2 — для ИП без сотрудников.

Полученные доходы за каждый квартал укажите нарастающим итогом в строках 110–113. Налоговую ставку за каждый квартал — в строках 120–123. Обратите внимание, что для пониженной налоговой ставки нужно заполнить код налоговой льготы в строке 124. 

Исчисленные авансовые платежи внесите в строки 130–133. Страховые взносы, уменьшающие налог, — в строки 140–143. 

Раздел 2.1.2

ИП, которые уплачивают торговый сбор, заполняют строки 150–153, и в строках 160–163 рассчитывается сумма сбора, уменьшающая налог на УСН. Если предприниматель не платит торговый сбор, то в Экстерне этот раздел необходимо удалить.

Для ИП с объектом налогообложения «Доходы минус расходы» 

Раздел 1.2

Раздел 1.2 заполняют также, как Раздел 1.1, но добавляют строку 120. В ней показывают минимальный налог, который следовало заплатить, если он оказался больше, чем налог по УСН.

Раздел 2.2
  • В этом разделе заполните не только полученные доходы, но и расходы, которые уменьшают налог на УСН.
  • Кроме того, укажите признак применения налоговой ставки и заполните строку 264, если в отчетном периоде вы использовали пониженную ставку налога.
  • Исчисленные авансовые платежи заполните в строках 270–273 для каждого квартала.
Раздел 3

Этот раздел предприниматель заполняет при наличии целевого финансирования. Если в отчетном году были целевые поступления, то по ним указывают:

  • код поступления;
  • дату получения и срок использования;
  • сумму полученных средств.

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

Сдать декларацию по УСН через интернет

Попробовать бесплатно

Получайте новости от наших экспертов дважды в месяц

Подписаться

Подписываясь, вы соглашаетесь на обработку персональных данных и получение информационных сообщений от группы компаний СКБ Контур.

@Nullable и @NotNull | Аннотации IntelliJ IDEA

@Nullable и @NotNull позволяют проверить допустимость значений NULL для переменной, параметра или возвращаемого значения. Они помогают контролировать контракты во всех иерархиях методов, и если IntelliJ IDEA обнаружит нарушение контракта, она сообщит об обнаруженной проблеме и укажет код, в котором может возникнуть NullPointerException .

Например, если вы создаете метод, в котором параметр имеет значение @NotNull , а затем вызовите этот метод с параметром, который потенциально может быть нулевым, IntelliJ IDEA выделит проблему на лету.

Проверка выполняется проверками постоянных условий и исключений и проблем @NotNull/@Nullable. Вы можете настроить способ работы этих проверок в диалоговом окне Settings/Preferences Ctrl+Alt+S . Перейти в редактор | Инспекции | Ява | Вероятные баги.

При компиляции проекта среда IDE добавляет утверждения ко всем методам и параметрам, аннотированным @NotNull аннотация. Утверждения завершатся ошибкой, если в коде, где ожидается @NotNull , будет передано значение null. Вы можете отключить эту опцию и настроить список аннотаций в диалоговом окне Settings/Preferences Ctrl+Alt+S . Перейти к сборке, выполнению, развертыванию | Компилятор.

@Nullable

Аннотация @Nullable помогает обнаружить:

  • Вызовы методов, которые могут возвращать null

  • Переменные (поля, локальные переменные и параметры), которые могут иметь значение null

Методы с аннотацией @Nullable в родительском методе могут иметь аннотации @Nullable или @NotNull в методе дочернего класса.

Для аннотации @Nullable параметра в родительском методе требуется аннотация @Nullable в параметре метода дочернего класса.

@NotNull

Аннотация @NotNull на самом деле является явным контрактом, объявляющим, что:

  • Метод не должен возвращать нулевое значение

  • Переменные (поля, локальные переменные и параметры) не могут содержать нулевое значение

IntelliJ IDEA предупреждает вас, если эти контракты нарушаются.

Для аннотации @NotNull родительского метода требуется аннотация @NotNull для метода дочернего класса.

Методы с аннотацией @NotNull параметра в родительском методе могут иметь либо @Nullable или @NotNull аннотации (или ни одна из них) в параметре метода дочернего класса.

Если @NotNull имеет цель _TYPE_USE_ , она применяется к типу элемента массива, а не к самому типу массива. Чтобы аннотировать тип массива аннотацией TYPE_USE , используйте синтаксис байт @NotNull [] байт .

Последнее изменение: 17 ноября 2021 г.

Аннотации @Contract

Как использовать переменные Terraform

Переменные в Terraform — отличный способ определить централизованно управляемые повторно используемые значения. Информация в переменных Terraform сохраняется независимо от планов развертывания, что упрощает чтение и редактирование значений из одного файла.

В этом руководстве мы рассмотрим типы доступных переменных в Terraform, как их определить и как их использовать. Вы можете использовать общую информацию о переменных в качестве быстрой шпаргалки, но примеры являются прямым продолжением нашей статьи для начинающих по Terraform. Если вы еще не установили Terraform, следуйте инструкциям здесь, чтобы начать работу.

Нужна помощь с Terraform? Получите бесплатную консультацию здесь!

Переменные Terraform

Terraform поддерживает несколько различных форматов переменных. В зависимости от использования переменные обычно делятся на входы и выходы.

Входные переменные используются для определения значений, которые настраивают вашу инфраструктуру. Эти значения можно использовать снова и снова без необходимости запоминать каждое их появление в случае необходимости обновления.

Выходные переменные, напротив, используются для получения информации об инфраструктуре после развертывания. Они могут быть полезны для передачи такой информации, как IP-адреса для подключения к серверу.

Входные переменные

Входные переменные обычно определяются указанием имени, типа и значения по умолчанию. Однако тип и значения по умолчанию не являются строго обязательными. Terraform может вычитать тип переменной из значения по умолчанию или входного значения.

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

 переменная "имя_переменной" {} 
 terraform apply -var variable_name="value" 

Входные переменные, как и приведенная выше, имеют несколько различных типов: строки, списки, карты и логические значения. Вот несколько примеров определения и использования каждого типа.

Строка

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

 переменная "шаблон" {
  тип = строка
по умолчанию = "01000000-0000-4000-8000-000030080200"
} 

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

 storage = var.template 

List

Другой тип списков переменных Terraform. Они работают так же, как пронумерованный каталог значений. Каждое значение может быть вызвано соответствующим индексом в списке. Вот пример определения переменной списка.

 переменная "пользователи" {
  тип = список
  по умолчанию = ["корень", "пользователь1", "пользователь2"]
} 

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

 имя пользователя = var.users[0] 

Карта

Карты представляют собой набор строковых ключей и строковых значений. Это может быть полезно для выбора значений на основе предопределенных параметров, таких как конфигурация сервера по месячной цене.

 переменная "планы" {
  тип = карта
  по умолчанию = {
    "5USD" = "1xCPU-1GB"
    "10USD" = "1xCPU-2GB"
    "20USD" = "2xCPU-4GB"
  }
} 

Вы можете получить доступ к правильному значению, используя соответствующий ключ. Например, приведенная ниже переменная задает план «1xCPU-1GB».

 plan = var.plans["5USD"] 

Значения, соответствующие их ключам, также можно использовать для поиска информации на других картах. Например, ниже приведен краткий список планов и соответствующих им объемов хранилища.

 переменная "storage_sizes" {
  тип = карта
  по умолчанию = {
    "1xCPU-1GB" = "25"
    "1xCPU-2GB" = "50"
    "2xCPU-4GB" = "80"
  }
} 

Затем их можно использовать для определения правильного размера хранилища на основе месячной цены, как определено в предыдущем примере.

 size = lookup(var.storage_sizes, var.plans["5USD"]) 

Boolean

Последняя доступная переменная имеет логический тип. Они дают возможность использовать простые истинные или ложные значения. Например, вы можете захотеть иметь переменную, которая определяет, когда генерировать пароль пользователя root при новом развертывании.

 переменная "set_password" {
  по умолчанию = ложь
} 

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

 create_password = var.set_password 

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

 terraform apply -var set_password="true" 

Выходные переменные

Выходные переменные обеспечивают удобный способ получения полезной информации о вашей инфраструктуре. Как вы могли заметить, большая часть сведений о сервере рассчитывается при развертывании и становится доступной только после этого. Используя выходные переменные, вы можете извлечь любые значения, специфичные для сервера, включая рассчитанные данные.

Настройка выходных переменных очень проста. Все, что вам нужно сделать, это определить имя для вывода и какое значение оно должно представлять. Например, вы можете сделать так, чтобы Terraform отображал IP-адрес вашего сервера после развертывания с выходной переменной ниже.

 вывод "public_ip" {
  значение = upcloud_server. server_name.network_interface[0].ip_address
} 

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

Затем Terraform будет выводить общедоступный IP-адрес в конце процесса применения команды. Кроме того, выходные переменные также можно вызывать по запросу с помощью команды вывода terraform. Затем продолжите настройку файла переменных для конфигурации сервера.

Определение переменных в файле

У вас должен быть проект Terraform с уже настроенным базовым планом. Если нет, следуйте нашему руководству по началу работы с Terraform.

Перейдите в каталог проекта Terraform.

 cd ~/terraform/base 

Переменные Terraform можно определить в плане инфраструктуры, но рекомендуется хранить их в собственном файле переменных. Все файлы в вашем каталоге Terraform, использующие формат файлов .tf, будут автоматически загружены во время операций.

Создайте файл переменных, например, variables.tf, и откройте его для редактирования.

Добавьте приведенные ниже объявления переменных в файл переменных. Замените путь к закрытому файлу ключа SSH и открытый ключ на наши собственные.

 переменная "private_key_path" {
  тип = строка
  по умолчанию = "/home/user/.ssh/terraform_rsa"
}
переменная "public_key" {
  тип = строка
  по умолчанию = "ssh-rsa terraform_public_key"
}
переменная "зоны" {
  тип = карта
  по умолчанию = {
    "амстердам" = "nl-ams1"
    "лондон" = "uk-lon1"
    "Франкфурт" = "де-фра1"
    "хельсинки1" = "фи-хел1"
    "хельсинки2" = "фи-хел2"
    "Чикаго" = "нас-чи1"
    "sanjose" = "нас-sjo1"
    "Сингапур" = "sg-sin1"
  }
}
переменная "планы" {
  тип = карта
  по умолчанию = {
    "5USD" = "1xCPU-1GB"
    "10USD" = "1xCPU-2GB"
    "20USD" = "2xCPU-4GB"
  }
}
переменная "storage_sizes" {
  тип = карта
  по умолчанию = {
    "1xCPU-1GB" = "25"
    "1xCPU-2GB" = "50"
    "2xCPU-4GB" = "80"
  }
}
переменная "шаблоны" {
  тип = карта
  по умолчанию = {
    "ubuntu18" = "01000000-0000-4000-8000-000030080200"
    "centos7" = "01000000-0000-4000-8000-000050010300"
    "debian9" = "01000000-0000-4000-8000-000020040100"
  }
}
переменная "set_password" {
  тип = логическое
  по умолчанию = ложь
}
переменная "пользователи" {
  тип = список
  по умолчанию = ["корень", "пользователь1", "пользователь2"]
}
переменная "план" {
  тип = строка
  по умолчанию = "10 долларов США"
}
переменная "шаблон" {
  тип = строка
  по умолчанию = "ubuntu18"
}
 

Приведенный выше пример на самом деле является просто хранилищем информации. По большей части он использует переменную карты Terraform, которая позволяет вам изменить значения на более удобочитаемые.

Переменные, установленные в файле, могут быть переопределены при развертывании. Это позволяет вам повторно использовать файл переменных, сохраняя при этом настройку конфигурации при развертывании. Например, хотя set_password имеет значение false в файле переменных, вы можете включить его в командной строке.

 terraform apply -var set_password="true" 

Таким же образом вы можете переопределить и другие переменные.

Автоматическая загрузка переменных

Файл переменных, описанный в предыдущем разделе, можно легко использовать во многих конфигурациях. Однако, если вам нужно внести больше пары изменений, стоит также поместить настройку в файл.

Файл определений переменных использует тот же базовый синтаксис, что и языковые файлы Terraform, но состоит только из назначений имен переменных.

Terraform автоматически загружает ряд файлов определений переменных, если они названы следующим образом:

Файлы с именами точно terraform. tfvars или terraform.tfvars.json.
Любые файлы с именами, заканчивающимися на .auto.tfvars или .auto.tfvars.json.

Теперь создайте новый файл для определения пользовательских переменных с именем terraform.tfvars, затем добавьте следующее содержимое.

 set_password = "истина"
пользователи = ["корень", "админ"]
план = "20 долларов США"
templates = {"ubuntu20":"01000000-0000-4000-8000-000030080200", "centos8":"01000000-0000-4000-8000-000050010300"}
шаблон = "ubuntu20"
 

Если вместо этого вы хотите использовать форматирование JSON, файлы с окончанием .tfvars.json анализируются как объекты JSON. Свойства корневого объекта соответствуют именам переменных.

 {
  "set_password": "истина",
  «пользователи»: [«корень», «админ»],
  "план": "20 долларов США"
  "templates": {"ubuntu20":"01000000-0000-4000-8000-000030200200", "centos8":"01000000-0000-4000-8000-000050010400"},
  "шаблон": "ubuntu20"
} 

Далее перейдите к разделу ниже о том, как использовать переменные.

Использование переменных в ресурсах

Значения, определенные в файлах variable.tf, можно использовать в планах Terraform, чтобы избежать жесткого кодирования параметров. В следующем примере выделенные переменные используются для выбора параметров развертывания нового облачного сервера.

Обратите внимание на две последние переменные, установленные в файле variable.tf, которые используются в качестве селекторов для выбора плана сервера и шаблона ОС.

 ресурс "upcloud_server" "server1" {
  # Имя хоста системы
  имя хоста = "terraform.example.com"
  # Зона доступности
  zone = var.zones["Амстердам"]
    
  # Количество процессоров и памяти в ГБ
  план = вар.планы[вар.план]
  шаблон {
    # Размер корневого диска ОС
    размер = поиск (var.storage_sizes, var.plans [var.plan])
    # UUID шаблона для Ubuntu 18.04
    хранилище = var.templates[var.template]
  }
  сетевой интерфейс {
    тип = "общедоступный"
  }
  сетевой интерфейс {
    тип = "утилита"
  }
  # Включите хотя бы один публичный SSH-ключ
  авторизоваться {
    пользователь = переменная. пользователи[0]
    create_password = var.set_password
    ключи = [
      var.public_key
    ]
  }
  связь {
    хост = self.network_interface[0].ip_address
    тип = "сш"
    пользователь = переменная.пользователи[0]
    private_key = файл (var.private_key_path)
  }
} 

Переменные Terraform полезны для определения сведений о сервере без необходимости запоминать значения, специфичные для инфраструктуры. Они также удобны для повторного использования общих параметров, таких как открытые ключи SSH, которые не меняются между конфигурациями.

Также важно, чтобы планы ресурсов не содержали личных данных по соображениям безопасности. Используя переменные, конфиденциальная информация, такая как закрытые ключи и имена пользователей, не будет непреднамеренно передана.

Определение выходных переменных

Выходные переменные обеспечивают удобный способ получения полезной информации о вашей инфраструктуре. Как вы могли заметить, большая часть сведений о сервере рассчитывается при развертывании и становится доступной только после этого. Используя выходные переменные, вы можете извлечь любые значения, специфичные для сервера, включая рассчитанные данные.

Настройка выходных переменных действительно очень проста. Все, что вам нужно сделать, это определить имя для вывода и какое значение оно должно соответствовать. Они могут быть включены в ваш план Terraform или в отдельный файл.

Начните с создания файла выходных переменных с именем output.tf и откройте его для редактирования.

Добавьте следующие три определения переменных в файл для вывода IP-адресов сервера и имени хоста после развертывания. Замените server_name на имя вашего хоста Terraform.

 вывод "public_ip" {
  значение = upcloud_server.server_name.network_interface[0].ip_address
}
вывод "utility_ip" {
  значение = upcloud_server.server_name.network_interface[1].ip_address
}
вывод "имя хоста" {
  значение = upcloud_server.server_name.hostname
} 

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

 план терраформирования 
 применение терраформирования 
 upcloud_server.server1: Создание завершено через 39 секунд (ID: 00b784aa-15c1-44dc-8252-f4bad865f853)
Заявка завершена! Ресурсы: 1 добавлено, 0 изменено, 0 уничтожено.
Выходы:
имя хоста = terraform.example.com
приватный_ip = 10.5.4.82
public_ip = 94.237.45.221 

Определенные вами переменные будут показаны в конце развертывания, как в примере выше. Однако вы также можете получить их в любое время с помощью команды Terraform. Например, чтобы получить общедоступный IP-адрес, вы можете использовать приведенную ниже примерную команду.

 terraform output public_ip 
 94.237.45.221 

Таким же образом вы можете спросить Terraform о любых других выходных переменных.

Использование переменных среды

Вы также можете установить конфиденциальные переменные в переменных среды с префиксом TF_VAR_, чтобы избежать необходимости сохранять их в файле. Например, установите свой пароль в локальных переменных окружения.

 export TF_VAR_PASSWORD="password" 

Вам также необходимо объявить переменную пароля в файле variable.tf.

 переменная ПАРОЛЬ { по умолчанию = "" } 

После этого переменную пароля можно использовать в ресурсах Terraform.

 поставщик "remote-exec" {
    встроенный = [
      "добавить пользователя ${var.users[0]}",
      "эхо '${var.users[0]}:${var.PASSWORD}' | chpasswd"
    ]
  } 

При развертывании поставщик удаленного выполнения создаст нового пользователя в соответствии с переменной пользователей с ПАРОЛЕМ, установленным в переменной среды.

Резюме

Переменные Terraform обеспечивают множество удобных применений для управления инфраструктурой. Разделение вашего плана развертывания и параметров конфигурации на отдельные файлы помогает поддерживать порядок. Однако это только общее назначение переменных Terraform. Определение вашей инфраструктуры с помощью переменных — это первый шаг к расширенным функциям Terraform.

Об авторе

alexxlab administrator

Оставить ответ