Generate /etc/hosts with Ansible

inventory file [servers] master ansible_ssh_host=172.18.23.69 node1 ansible_ssh_host=172.18.23.70 node2 ansible_ssh_host=172.18.23.71 node3 ansible_ssh_host=172.18.23.72 templates/etc/hosts.j2 {% for item in ansible_play_batch %} {{ hostvars[item].ansible_ssh_host }} {{ item }}.example.com {% endfor %} playbook task - hosts: servers gather_facts: False tasks: - name: update /etc/hosts file become: true blockinfile: dest: /etc/hosts content: "{{ lookup('template', 'templates/etc/hosts.j2') }}" state: present

Aborting ansible playbook if a host is unreachable

I was about to post a question, when I saw this one. The answer Duncan suggested does not work, atleast in my case. the host is unreachable. All my playbooks specify a max_fail_percentage of 0. But ansible will happily execute all the tasks on the hosts that it is able to reach and perform the action. What I really wanted was if any of the host is unreachable, don’t do any of the tasks. What Read more

Стиль архитектуры, управляемой событиями

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

How Laravel’s SerializesModels Trait Could Save Your Bacon

When a Laravel Job is dispatched that takes an Eloquent Model as an argument in the constructor, you can use the SerializesModels trait which will only serialize the model identifier. When the job is actually handled, the queue system will automatically re-retrieve the full model instance from the database (docs). Taylor also announced that in Laravel 5.3, you will also be able to do this with Eloquent Collections! (link) So why is it necessary or Read more

Event Driven Systems

Событие-это то, на что наше приложение должно реагировать. Изменение адреса клиента, покупка или расчет счета клиента-все это события. Эти события могут исходить из внешнего мира или инициироваться внутри, например, запланированное задание, которое выполняется каждый раз. И суть здесь в том, чтобы захватить эти события и затем обработать их, чтобы вызвать изменения в приложении в дополнение к хранению их в качестве журнала аудита. The workflow Рабочий процесс: На рисунке выше показаны три компонента: клиент, заказ и Read more

Data Transfer Object (DTO) in Laravel with PHP7.4 typed properties

Data Transfer Objects help in «structuring» the data coming from different types of requests ( Http request, Webhook request etc. ) into single form which we can use in various parts of our application. With DTOs, we have confidence that we will not get unexpected data in our application logic. Example class CheckoutData extends DataTransferObject { public int $checkout_id; public Carbon $completed_at; public static function fromRequest(Request $request){ ... } public static function fromWebhook(array $params) { Read more

PHP basic auth file_get_contents()

You will need to add a stream context to get the extra data in your request. Try something like the following untested code. It’s based on one of the examples on the PHP documentation for file_get_contents(): $auth = base64_encode("username:password"); $context = stream_context_create([ "http" => [ "header" => "Authorization: Basic $auth" ] ]); $homepage = file_get_contents("http://example.com/file", false, $context );

Traefik not issuing certs in HA cluster

Traefik eventually started working on it’s own. Might have been a lingering lock that needed to expire or something. I added the following to the Traefik Consul policy key_prefix "traefik/" { policy = "write" } session "" { policy = "write" } session_prefix "" { policy = "write" } I’ll be honest that I’m not sure which part fixed the ACL issue. Will update this thread if I get time to do more debugging. recently Read more

Настройка Преобразования DNS с Помощью «resolv.conf» в Примерах

Файл настроек /etc/resolv.conf содержит информацию, которая позволяет компьютеру преобразовывать буквенно-цифровые доменные имена в цифровые IP адреса. При использовании DHCP, dhclient обычно перезаписывает resolv.conf информацией полученной от DHCP сервера. Как редактировать файл «/etc/resolv.conf»? Используйте текстовые редакторы, такие как vi или gedit, в Linux: # vi /etc/resolv.conf В /etc/resolv.conf настраиваются три основные опции (директивы): nameserver # IP адрес DNS сервера domain # Доменное Имя локального хоста search # Какие Доменные Имена искать Директива «nameserver» Опция nameserver указывает Read more

Микросервисная архитектура в разрезе

Использовать микросервисную архитектуру или нет? Разбираемся с плюсами и минусами, внутренней коммуникацией, принципами и заблуждениями. Виды архитектуры Простейший и популярный вариант архитектуры – монолитная. Каждый начинал с неё, и здесь нет никакой изоляции и распределённости: один монолит обрабатывает все запросы. Отчего возникают следующие проблемы: отказоустойчивость; горизонтальное масштабирование; применение одной технологии или языка и невыгодность переписывать огромный монолит; сложность рефакторинга из-за хранения кода в одном месте и куча legacy; трудности работы в команде разработчиков; чтобы использовать повторно, придётся Read more


Любишь мемасики?

Подпишись на мой телеграм-канал!

Открыть
Закрыть