#devops #девопс #ansible #ityoutubersru 11-Ansible - Переменные - Debug, Set_fact, Register Буду рад паре баксов, можно даже Канадских :) www.paypal.me/...
В очередной раз слышу, что become "делает root". Это не так! become запускает через sudo. Не на всех системах sudo установлен. Как пример линукс в роутерах, радиоустройствах. Их тоже бывает большое количество в сети и ими можно управлять через Ansible. Это не в "обидку" автору, а разъяснения для. Автору - респект!
Кароче сделал вывод что лучше писать модули на питоне подключать их в коллекции и писать ПБ чисто из своих ролей, так хотя бы не будет этой дурной логики ансибл в ПБ, еще я что не понял в тапках - имя, а потом вдруг - модуль, как так
модуль setup - отлчиная штука, чтобы отфильтровать хосты по какому-любо признаку. но ansible all -m setup | grep python не показывает hostname. как же бытьб если надо версию пейтона быстро ad-hoc командой грепнуть? или плейбуком всегда все ретривить?
Денис подскажи плз. Через playbook в одной группе серверов делаю команду, это команду сохраняю через register и как ее можно передать на другую группу серверов?
Денис обьясни пожалуйста такой прикол: почему когда мы запускали Ad-Hoc команды модуль shell сразу выводил output, например : ansible all -m shell -a uptime, а в playbook не выводит? И нужно сохранять в переменную, как ты показал в этом уроке, 13:09
Прикол в том, как я понял, что когда вводишь руками ad-hoc команду shell тогда тебе всегда выводится ответ пк в консоль. При использовании же playbook'ов - команды просто молча выполняются, они не выводят там разные процессы и прочее, только то - что ты указал.
Подскажите, команды над строками по каким правилам обрабатываются, Pyton , Ansible или что-то еще? Я о командах таких как: .stdout.find('hi') != -1 ; .stdout.split(' '). Где найти их список и описание. Спасибо.
Здравствуйте! Отличные видео, спасибо Вам! Подскажите, Вы не пользовались модулем 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
Не разу не пробовал его использовать, Вот пример - 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
вопрос такой, мсг1 и 2 склеили через set_fact но мы же выше их и вывели, пояснение не оч верное? как бы странно выводить это по отдельности а потом складывать в новую переменную вместе и опять выводить, тут наверное речь больше про то что так можно создавать новые переменные в ходе работы
Скажите а как рассматривать факты в глобальном массиве , не так как в текущей инстанце? Допустим в инвентори файле у нас есть группа [mail] и нам нужно получить mynetworks=8.8.8.8, 8.8.4.4, 8.8.8.4 - (предположим что это IP наших хостов) - Это строка для POSTFIХ. Как автоматически генерировать такую строку?
Проверьте вашу версию 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 %}
Мужик, какой же ты полезный! Спасибо!
В очередной раз слышу, что become "делает root". Это не так! become запускает через sudo. Не на всех системах sudo установлен. Как пример линукс в роутерах, радиоустройствах. Их тоже бывает большое количество в сети и ими можно управлять через Ansible.
Это не в "обидку" автору, а разъяснения для.
Автору - респект!
Критика принимается с почтением !
@Aleksey Netrebin по-моему можно переменные добавить ansible_become: yes
ansible_become_method: sudo
ansible_become_pass: “superstrongpass”, пароль естественно нужно шифровать
Круто! Все понятно,доступно и последовательно!
огромное спасибо добрый человек! сэкономил кучу часов) задонатил
Спасибо большое!
Очень крутые уроки :-) Спасибо!
Дождался ...видос по ansible!)
Теперь жду по AWS!)
Большое спасибо...как обычно все на высшем уровне!
Они уже есть )
супер движемся дальше!
Лайк за "это клёвый json" )))))
о новый видос ))) спасибо друг!
Топ контент, в отличии от кучи водометов с рекламой курсов и семинаров!
11:20 Рэд хот чилли пепперс ?)) Спасибо за урок)
Здравствуйте. Спасибо! Помнится в компьютерном клубе в КС 1.6 делали никнеймы с "-->
Давай про Block , rescue ,combine и про json_query)))
Кароче сделал вывод что лучше писать модули на питоне подключать их в коллекции и писать ПБ чисто из своих ролей, так хотя бы не будет этой дурной логики ансибл в ПБ, еще я что не понял в тапках - имя, а потом вдруг - модуль, как так
модуль setup - отлчиная штука, чтобы отфильтровать хосты по какому-любо признаку. но ansible all -m setup | grep python не показывает hostname. как же бытьб если надо версию пейтона быстро ad-hoc командой грепнуть? или плейбуком всегда все ретривить?
Записывал видео 1 января)))
По-моему первого июня)
Денис подскажи плз. Через playbook в одной группе серверов делаю команду, это команду сохраняю через register и как ее можно передать на другую группу серверов?
- 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
Денис обьясни пожалуйста такой прикол: почему когда мы запускали Ad-Hoc команды модуль shell сразу выводил output, например : ansible all -m shell -a uptime, а в playbook не выводит? И нужно сохранять в переменную, как ты показал в этом уроке, 13:09
Давно уже не трогал Ansible, мало что помню честно
Прикол в том, как я понял, что когда вводишь руками ad-hoc команду shell тогда тебе всегда выводится ответ пк в консоль. При использовании же playbook'ов - команды просто молча выполняются, они не выводят там разные процессы и прочее, только то - что ты указал.
@@kouling3250 Да, спасибо. Чтоб увидеть вывод плейбука register и debug.
привет! коды случайно нигде не лежат на гитхабе? а то лень писать)) спасибо за труд!
Этих нету, сорри
так ты никогда ничего не выучишь. надо именно писать
Подскажите, команды над строками по каким правилам обрабатываются, Pyton , Ansible или что-то еще? Я о командах таких как: .stdout.find('hi') != -1 ; .stdout.split('
'). Где найти их список и описание. Спасибо.
Fitter2 Boss это команды Ansible, вся документация на ихнем сайте.
Спасибо.
А как ansible понял, что переменную -->{{ owner }}
iz host, yes
Здравствуйте! Отличные видео, спасибо Вам! Подскажите, Вы не пользовались модулем 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
Не разу не пробовал его использовать,
Вот пример
- 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
@@ADV-IT Да, в документации я видел этот пример. Но в документации всё связано с "Cisco IOS". У меня про другое. Ладно, спасибо.
вопрос такой, мсг1 и 2 склеили через set_fact но мы же выше их и вывели, пояснение не оч верное? как бы странно выводить это по отдельности а потом складывать в новую переменную вместе и опять выводить, тут наверное речь больше про то что так можно создавать новые переменные в ходе работы
Скажите а как рассматривать факты в глобальном массиве , не так как в текущей инстанце?
Допустим в инвентори файле у нас есть группа [mail] и нам нужно получить mynetworks=8.8.8.8, 8.8.4.4, 8.8.8.4 - (предположим что это IP наших хостов) - Это строка для POSTFIХ.
Как автоматически генерировать такую строку?
Приеду на работу напишу как это сделать. Это хитро но Круто!
set_fact: nodelist={%for host in groups['mygroup']%}{{hostvars[host].ansible_eth0.ipv4.address}}{% if not loop.last %},{% endif %}{% endfor %}
Получишь:
nodelist=8.8.8.8, 8.8.4.4, 8.8.8.4
Проверьте вашу версию 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 %}
Ansible Versiob 2.6.4
Сделай : pip install ansible --upgrade
Так когда используют var а когда msg?
var только если ты хочешь вывести сначение переменной, msg если ты хочешь вывести сообщение
Спасибо