11-Ansible - Переменные - Debug, Set_fact, Register

Поділитися
Вставка
  • Опубліковано 22 сер 2024
  • #devops #девопс #ansible #ityoutubersru
    11-Ansible - Переменные - Debug, Set_fact, Register
    Буду рад паре баксов, можно даже Канадских :) www.paypal.me/...

КОМЕНТАРІ • 58

  • @Nodorgrom
    @Nodorgrom 4 роки тому +47

    Мужик, какой же ты полезный! Спасибо!

  • @user-rb6rd4ty3u
    @user-rb6rd4ty3u 6 років тому +48

    В очередной раз слышу, что become "делает root". Это не так! become запускает через sudo. Не на всех системах sudo установлен. Как пример линукс в роутерах, радиоустройствах. Их тоже бывает большое количество в сети и ими можно управлять через Ansible.
    Это не в "обидку" автору, а разъяснения для.
    Автору - респект!

    • @ADV-IT
      @ADV-IT  6 років тому +16

      Критика принимается с почтением !

    • @ilyalychkou6286
      @ilyalychkou6286 2 роки тому +1

      @Aleksey Netrebin по-моему можно переменные добавить ansible_become: yes
      ansible_become_method: sudo
      ansible_become_pass: “superstrongpass”, пароль естественно нужно шифровать

  • @batyrzhanshakmanov9308
    @batyrzhanshakmanov9308 4 роки тому +3

    Круто! Все понятно,доступно и последовательно!

  • @aleksandrkravtsov8727
    @aleksandrkravtsov8727 4 роки тому +2

    огромное спасибо добрый человек! сэкономил кучу часов) задонатил

    • @ADV-IT
      @ADV-IT  4 роки тому

      Спасибо большое!

  • @MrShurshunchik
    @MrShurshunchik 4 роки тому +3

    Очень крутые уроки :-) Спасибо!

  • @alexbrofman5935
    @alexbrofman5935 6 років тому +8

    Дождался ...видос по ansible!)
    Теперь жду по AWS!)
    Большое спасибо...как обычно все на высшем уровне!

    • @vagifk2864
      @vagifk2864 5 років тому

      Они уже есть )

  • @texasviking7732
    @texasviking7732 2 роки тому +2

    супер движемся дальше!

  • @p.konstantin1888
    @p.konstantin1888 4 роки тому +4

    Лайк за "это клёвый json" )))))

  • @onemasterlomaster1829
    @onemasterlomaster1829 6 років тому +5

    о новый видос ))) спасибо друг!

  • @maximbeloff8579
    @maximbeloff8579 2 роки тому +1

    Топ контент, в отличии от кучи водометов с рекламой курсов и семинаров!

  • @nicolayzavalny8243
    @nicolayzavalny8243 4 роки тому +3

    11:20 Рэд хот чилли пепперс ?)) Спасибо за урок)

  • @user-mp7zp3hc5p
    @user-mp7zp3hc5p 2 роки тому +1

    Здравствуйте. Спасибо! Помнится в компьютерном клубе в КС 1.6 делали никнеймы с "-->

  • @user-jb1wq1re2j
    @user-jb1wq1re2j 6 років тому +2

    Давай про Block , rescue ,combine и про json_query)))

  • @sammyel4eg
    @sammyel4eg Місяць тому +1

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

  • @Ivan-wp1ne1
    @Ivan-wp1ne1 2 роки тому +1

    модуль setup - отлчиная штука, чтобы отфильтровать хосты по какому-любо признаку. но ansible all -m setup | grep python не показывает hostname. как же бытьб если надо версию пейтона быстро ad-hoc командой грепнуть? или плейбуком всегда все ретривить?

  • @Alex_La
    @Alex_La 3 роки тому +1

    Записывал видео 1 января)))

  • @sd3veng338
    @sd3veng338 2 роки тому

    Денис подскажи плз. Через playbook в одной группе серверов делаю команду, это команду сохраняю через register и как ее можно передать на другую группу серверов?

    • @ADV-IT
      @ADV-IT  2 роки тому +1

      - hosts: onehost
      tasks:
      - command: /bin/echo "this is a test"
      register: foo
      - hosts: anotherhost
      tasks:
      - debug: var=foo
      when: foo is defined
      - debug: var=hostvars['onehost']['foo']
      when: hostvars['onehost']['foo'] is defined

  • @user-we5hn2yi3k
    @user-we5hn2yi3k Рік тому

    Денис обьясни пожалуйста такой прикол: почему когда мы запускали Ad-Hoc команды модуль shell сразу выводил output, например : ansible all -m shell -a uptime, а в playbook не выводит? И нужно сохранять в переменную, как ты показал в этом уроке, 13:09

    • @ADV-IT
      @ADV-IT  Рік тому +1

      Давно уже не трогал Ansible, мало что помню честно

    • @kouling3250
      @kouling3250 Рік тому +2

      Прикол в том, как я понял, что когда вводишь руками ad-hoc команду shell тогда тебе всегда выводится ответ пк в консоль. При использовании же playbook'ов - команды просто молча выполняются, они не выводят там разные процессы и прочее, только то - что ты указал.

    • @user-we5hn2yi3k
      @user-we5hn2yi3k Рік тому

      @@kouling3250 Да, спасибо. Чтоб увидеть вывод плейбука register и debug.

  • @George-mk7lp
    @George-mk7lp 3 роки тому

    привет! коды случайно нигде не лежат на гитхабе? а то лень писать)) спасибо за труд!

    • @ADV-IT
      @ADV-IT  3 роки тому +1

      Этих нету, сорри

    • @Ivan-wp1ne1
      @Ivan-wp1ne1 2 роки тому +2

      так ты никогда ничего не выучишь. надо именно писать

  • @fitter2boss72
    @fitter2boss72 6 років тому

    Подскажите, команды над строками по каким правилам обрабатываются, Pyton , Ansible или что-то еще? Я о командах таких как: .stdout.find('hi') != -1 ; .stdout.split('
    '). Где найти их список и описание. Спасибо.

    • @ADV-IT
      @ADV-IT  6 років тому

      Fitter2 Boss это команды Ansible, вся документация на ихнем сайте.

    • @fitter2boss72
      @fitter2boss72 6 років тому +1

      Спасибо.

  • @gadgetofff
    @gadgetofff 3 роки тому

    А как ansible понял, что переменную -->{{ owner }}

  • @user-zr7yc3nl5g
    @user-zr7yc3nl5g 4 роки тому

    Здравствуйте! Отличные видео, спасибо Вам! Подскажите, Вы не пользовались модулем telnet в Ansible? Пытаюсь выполнить простейшие манипуляции- ничего не получается. Если командой "telnet 106" подключение происходит, затем USER и PASS , авторизация прошла пишем GETCURRENTCONTROLLER и всё выводит. То плейбук вываливается с ошибкой. Может подскажите в чём ошибка? Кусок плейбука с модулем telnet: - name: Get IP Current Conroller
    telnet:
    host: ***
    port: 106
    timeout:
    default: 10
    promts:
    - "[>#]"
    send_newline: yes
    command:
    - USER ***
    - PASS ***
    - GETCURRENTCONTROLLER
    - quit
    register: result

    • @ADV-IT
      @ADV-IT  4 роки тому +1

      Не разу не пробовал его использовать,
      Вот пример
      - name: show version
      hosts: 10.10.10.10
      gather_facts: false
      connection: local
      tasks:
      - name: telnet test
      telnet:
      user: test
      password: test123
      login_prompt: "Username: "
      prompts:
      - '[>|#]'
      command:
      - terminal length 0
      - show version

    • @user-zr7yc3nl5g
      @user-zr7yc3nl5g 4 роки тому

      @@ADV-IT Да, в документации я видел этот пример. Но в документации всё связано с "Cisco IOS". У меня про другое. Ладно, спасибо.

  • @sammyel4eg
    @sammyel4eg Місяць тому

    вопрос такой, мсг1 и 2 склеили через set_fact но мы же выше их и вывели, пояснение не оч верное? как бы странно выводить это по отдельности а потом складывать в новую переменную вместе и опять выводить, тут наверное речь больше про то что так можно создавать новые переменные в ходе работы

  • @fitter2boss72
    @fitter2boss72 5 років тому

    Скажите а как рассматривать факты в глобальном массиве , не так как в текущей инстанце?
    Допустим в инвентори файле у нас есть группа [mail] и нам нужно получить mynetworks=8.8.8.8, 8.8.4.4, 8.8.8.4 - (предположим что это IP наших хостов) - Это строка для POSTFIХ.
    Как автоматически генерировать такую строку?

    • @ADV-IT
      @ADV-IT  5 років тому

      Приеду на работу напишу как это сделать. Это хитро но Круто!

    • @ADV-IT
      @ADV-IT  5 років тому +2

      set_fact: nodelist={%for host in groups['mygroup']%}{{hostvars[host].ansible_eth0.ipv4.address}}{% if not loop.last %},{% endif %}{% endfor %}

    • @ADV-IT
      @ADV-IT  5 років тому

      Получишь:
      nodelist=8.8.8.8, 8.8.4.4, 8.8.8.4

    • @fitter2boss72
      @fitter2boss72 5 років тому

      Проверьте вашу версию ansible. (у меня 2.5)
      Я тоже сегодня нахожу похожие примеры, но они для меня не работают. ("The task includes an option with an undefined variable. The error was: 'dict object' has no attribute 'ansible_eth0' .....)
      И если я распечатаю msg: "{{ hostvars['mail1.mydomain.com']}}", то я не увижу ansible_eth0, но есть ansible_host
      Но тоже проблема это тоже не срабатывает :
      - set_fact: nodelist={%for host in groups['mail']%}{{hostvars[host].ansible_host}}{% if not loop.last %},{% endif %}{% endfor %}

    • @ADV-IT
      @ADV-IT  5 років тому +1

      Ansible Versiob 2.6.4
      Сделай : pip install ansible --upgrade

  • @Zvezd83
    @Zvezd83 5 років тому

    Так когда используют var а когда msg?

    • @ADV-IT
      @ADV-IT  5 років тому

      var только если ты хочешь вывести сначение переменной, msg если ты хочешь вывести сообщение

    • @Zvezd83
      @Zvezd83 5 років тому +1

      Спасибо