Ansible è un software open source per l’automazione e l’orchestrazione su larga scala di sistemi e infrastrutture IT.
Non richiede l’installazione di agenti sui nodi target e la sua semplicità di configurazione ne sta facendo uno dei prodotti di riferimento nel panorama Infrastrutture as Code (IaC)
The state of hooking into Drupal - DrupalCon DublinNida Ismail Shah
https://events.drupal.org/dublin2016/sessions/state-hooking-drupal
Major portion of drupal development has been about hooks. We have all used them. But there have been talks about replacing the procedural hook system in Drupal with its Object oriented version - Events. We are already on the track and we, as of now, are required to use Events for many things in Drupal 8.
This session will mainly elustrate:
How hooks work in Drupal.
How we are on the track of moving from hooks to Events in Drupal 8
Where we are? What all do we need Events for and where we are still stuck with hooks.
When to alter and when to fire an event.
How to create and dispatch an Event from your module.
How to listen or subscribe to an Event from your custom Event or an event from core.
How to expose custom hooks in Drupal 8.
Attendees should be familiar with:
Basic Drupal 8 module development.
Basic OOP principles and practices.
Symfony components used in D8.
After attending this session attendees will be able to:
Create their custom events in Drupal 8
Subscribe to the events from core and other modules and to their custom events too.
Will have a knowledge of where to explore the events and where we have to still use hooks.
The Android Support Library provides backward-compatible versions of Android framework APIs as well as features that are common for multiple Android versions like Fragments and Loaders. It was first released in March 2011 and is currently in version 11 released in November 2012. It includes classes for Fragments, FragmentManager, LoaderManager, and more that provide consistent behavior across Android versions.
This document discusses using Puppet resources to describe and manage Google Compute Engine (GCE) infrastructure as code. Resources can represent GCE objects like disks, networks, firewalls, and instances. Common application stacks can then be built by composing these resources, such as defining a network and firewall and launching an instance that uses them. Instances can also consume modules and classes from the Puppet Forge to deploy full applications. This allows infrastructure to be treated declaratively and avoids copy-paste configuration.
Less Verbose ActionScript 3.0 - Write less and do more!Arul Kumaran
While we all like AS3 for consistency, better performance and OOP, many of us hate it for its verbose nature. If you share this view, then you will find this session helpful in your day-to-day development tasks, be it an agency interactive or a complex application. There are micro frameworks like SimpleAS3, as3Query (ported from jQuery) and Short that attempt to reduce the verboseness of the language. This session will explore such frameworks and other tips and tricks to simplify the language for us.
This document discusses managing PostgreSQL databases using Ansible. It begins with an introduction to Ansible and its key components like inventory, modules, tasks, variables, templates and playbooks. It then demonstrates how to install and use Ansible to provision Amazon EC2 instances, install PostgreSQL packages, setup streaming replication with a master and two standby servers, and add a new standby server. Various PostgreSQL and AWS-specific Ansible modules are also described.
Getting Started with Ansible - Jake.pdfssuserd254491
The document provides an introduction and overview of Ansible automation. It discusses what Ansible is, how it works, and how to get started using it. The key points are:
- Ansible is an open source automation tool that allows users to automate application deployments, configuration management, and workflow orchestration across multiple machines.
- It uses YAML files called playbooks to define automation tasks. Playbooks are executed across machines defined in an inventory file using SSH or WinRM with no agents required.
- Getting started involves using ad-hoc commands to run simple tasks, then moving to playbooks to define reusable automation. Playbooks use a simple YAML syntax and can leverage variables, conditionals, and roles.
Short and comprehensive manual to extend your local matlab with a high performance computing cluster of NVidia tesla's 2070 graphical processing units.
Ansible is an open source automation platform, written in Python, that can be used for configuration-management, application deployment, cloud provisioning, ad-hoc task-execution, multinode orchestration and so on. This talk is an introduction to Ansible for beginners, including tips like how to use containers to mimic multiple machines while iteratively automating some tasks or testing.
The state of hooking into Drupal - DrupalCon DublinNida Ismail Shah
https://events.drupal.org/dublin2016/sessions/state-hooking-drupal
Major portion of drupal development has been about hooks. We have all used them. But there have been talks about replacing the procedural hook system in Drupal with its Object oriented version - Events. We are already on the track and we, as of now, are required to use Events for many things in Drupal 8.
This session will mainly elustrate:
How hooks work in Drupal.
How we are on the track of moving from hooks to Events in Drupal 8
Where we are? What all do we need Events for and where we are still stuck with hooks.
When to alter and when to fire an event.
How to create and dispatch an Event from your module.
How to listen or subscribe to an Event from your custom Event or an event from core.
How to expose custom hooks in Drupal 8.
Attendees should be familiar with:
Basic Drupal 8 module development.
Basic OOP principles and practices.
Symfony components used in D8.
After attending this session attendees will be able to:
Create their custom events in Drupal 8
Subscribe to the events from core and other modules and to their custom events too.
Will have a knowledge of where to explore the events and where we have to still use hooks.
The Android Support Library provides backward-compatible versions of Android framework APIs as well as features that are common for multiple Android versions like Fragments and Loaders. It was first released in March 2011 and is currently in version 11 released in November 2012. It includes classes for Fragments, FragmentManager, LoaderManager, and more that provide consistent behavior across Android versions.
This document discusses using Puppet resources to describe and manage Google Compute Engine (GCE) infrastructure as code. Resources can represent GCE objects like disks, networks, firewalls, and instances. Common application stacks can then be built by composing these resources, such as defining a network and firewall and launching an instance that uses them. Instances can also consume modules and classes from the Puppet Forge to deploy full applications. This allows infrastructure to be treated declaratively and avoids copy-paste configuration.
Less Verbose ActionScript 3.0 - Write less and do more!Arul Kumaran
While we all like AS3 for consistency, better performance and OOP, many of us hate it for its verbose nature. If you share this view, then you will find this session helpful in your day-to-day development tasks, be it an agency interactive or a complex application. There are micro frameworks like SimpleAS3, as3Query (ported from jQuery) and Short that attempt to reduce the verboseness of the language. This session will explore such frameworks and other tips and tricks to simplify the language for us.
This document discusses managing PostgreSQL databases using Ansible. It begins with an introduction to Ansible and its key components like inventory, modules, tasks, variables, templates and playbooks. It then demonstrates how to install and use Ansible to provision Amazon EC2 instances, install PostgreSQL packages, setup streaming replication with a master and two standby servers, and add a new standby server. Various PostgreSQL and AWS-specific Ansible modules are also described.
Getting Started with Ansible - Jake.pdfssuserd254491
The document provides an introduction and overview of Ansible automation. It discusses what Ansible is, how it works, and how to get started using it. The key points are:
- Ansible is an open source automation tool that allows users to automate application deployments, configuration management, and workflow orchestration across multiple machines.
- It uses YAML files called playbooks to define automation tasks. Playbooks are executed across machines defined in an inventory file using SSH or WinRM with no agents required.
- Getting started involves using ad-hoc commands to run simple tasks, then moving to playbooks to define reusable automation. Playbooks use a simple YAML syntax and can leverage variables, conditionals, and roles.
Short and comprehensive manual to extend your local matlab with a high performance computing cluster of NVidia tesla's 2070 graphical processing units.
Ansible is an open source automation platform, written in Python, that can be used for configuration-management, application deployment, cloud provisioning, ad-hoc task-execution, multinode orchestration and so on. This talk is an introduction to Ansible for beginners, including tips like how to use containers to mimic multiple machines while iteratively automating some tasks or testing.
This document discusses using Ansible to manage PostgreSQL databases. It begins with an introduction to Ansible, explaining that it is an agentless automation tool used for configuration management, deployment, and orchestration. It then provides an overview of installing and using Ansible to provision infrastructure on Amazon Web Services and install PostgreSQL with streaming replication across multiple servers. Key components of Ansible like templates, variables, tasks, and playbooks are demonstrated in an example repository for automating PostgreSQL configuration management.
This Presentation is an introducing to the IT automation environment, starting from a sys admin point of view.
The purpose of these tools is to help in troubleshooting and handling an heterogeneous it environment to ensure availability and reliability.
Introduction to Ansible - (dev ops for people who hate devops)Jude A. Goonawardena
This presentation covers the fundamentals of Ansible and it is useful for the people who are seeking information to start using Ansible, what it is capable of and how to use it right. I purposely made syntax errors in certain slides to demonstrate how to fix such errors and giving the idea of the importance to write syntax right. If you have any questions please don't hesitate to contact me over my mail address judeashan@gmail.com. All the best!!
The document provides an overview and quick start guide for learning Puppet. It discusses what Puppet is, how to install a Puppet master and agent, Puppet modules and templates, and looping elements in templates. The guide outlines three sessions: 1) configuring a master and agent, 2) using modules and templates, and 3) looping in templates. It provides configuration examples and explains how to generate files on the agent from templates using Puppet runs.
My talk from DevOpsCon Berlin 2016.
Ansible is a radically simple and lightweight provisioning framework which makes your servers and applications easier to provision and deploy. By orchestrating your application deployments you gain benefits such as documentation as code, testability, continuous integration, version control, refactoring, automation and autonomy of your deployment routines, server and application configuration. Ansible uses a language that approaches plain English, uses SSH and has no agents to install on remote systems. It is the simplest way to automate and orchestrate application deployment, configuration management and continuous delivery.
In this tutorial you will be given an introduction to Ansible and learn how to provision Linux servers with a web-proxy, a database and some other packages. Furthermore we will automate zero downtime deployment of a Java application to a load balanced environment.
GPars (Groovy Parallel Systems) is an open-source concurrency and parallelism library for Java and Groovy that gives you a number of high-level abstractions for writing concurrent and parallel code in Groovy (map/reduce, fork/join, asynchronous closures, actors, agents, dataflow concurrency and other concepts), which can make your Java and Groovy code concurrent and/or parallel with little effort.
Ansible is an automation platform that allows users to configure, deploy, and manage applications on servers. It combines multi-node software deployment, configuration management, and task execution. Ansible works by provisioning machines using SSH and executing commands via modules. Playbooks allow users to automate complex deployment workflows through YAML scripts. Roles in Ansible allow for reusable and modular components.
The document provides an overview of the cgroup subsystem and namespace subsystem in Linux, which form the basis of Linux containers. It discusses how cgroups and namespaces enable lightweight virtualization of processes through isolation of resources and namespaces. It then covers specific aspects of cgroups like the memory, CPU, devices, and PIDs controllers. It also summarizes the key differences and improvements in the cgroup v2 implementation, such as having a single unified hierarchy and consistent controller interfaces.
Ansible is an open source automation tool that allows users to configure, manage, and deploy software on remote machines without requiring an agent. It uses SSH to connect to nodes and executes modules written in Python. Playbooks allow users to automate multiple tasks by defining YAML files containing a list of commands. Ansible is agentless and can manage hundreds of nodes with a single command.
This document discusses hooks, events, and the event dispatcher in Drupal 8. It provides an overview of hooks and why they were replaced by events, which allow for more object-oriented and loosely coupled code. It describes how to create event subscribers by implementing the EventSubscriberInterface and defining subscriber methods. It also covers how to dispatch events by extending the base Event class and calling the dispatch method on the event dispatcher service.
Ansible is a tool for configuration management and application deployment. It works by connecting to target systems using SSH and executing commands. Ansible has simple definitions for describing system configurations and states using YAML files and modules written in Python. Modules allow Ansible to assess system states, make changes idempotently to ensure systems match the defined states. Ansible is highly modular and has many contributors due to its architecture, examples, documentation and an active community.
This document provides an overview of Ansible including:
- What Ansible is and how it compares to other configuration management tools like Chef and Puppet
- How Ansible works in an agentless manner over SSH and ensures idempotency
- The basic components of Ansible like playbooks, tasks, modules, variables, and roles
- How to install and configure Ansible including installing on control and managed nodes and using Ansible inventory
- Examples of using Ansible playbooks including tasks, modules, handlers, templates, conditionals, and loops
- Common Ansible commands like ansible-playbook, ansible-inventory, ansible-galaxy and how to use them
Zero Downtime Deployment with Ansible - learn how to provision Linux servers with a web-proxy, a database and automate zero downtime deployment of a Java application to a load balanced environment.
These are the slides from a tutorial held at the Velocity Conference in Barcelona November 19th, 2014.
Git repo: https://github.com/steinim/zero-downtime-ansible
#OktoCampus - Workshop : An introduction to AnsibleCédric Delgehier
- A playbook is defined to check if a pattern is present in the content of a web page retrieved from localhost. The playbook registers the content and fails if the defined pattern is not found.
- The playbook is modified to define different patterns for different host groups - the groups "prod" and "recette" would each have their own unique pattern to check for.
- The playbook uses Ansible modules like uri to retrieve a web page, register to store the content, and fail if a registered pattern is not found in the content. Variables and conditionals allow defining patterns dynamically based on host groups.
Ansible is a simple yet powerful automation engine that uses YAML syntax. It is fast, efficient, and secure as it does not require agents or open ports on servers. Ansible uses inventory to list hosts and groups, modules to define units of work, facts to discover node details, and playbooks to define lists of plays and tasks. Playbooks can use tags to selectively run certain tasks. Roles help organize and reuse groups of tasks. Galaxy allows installing roles from online repositories. Variables precedence determines which value is used. Vault encrypts sensitive files.
factory_girl is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class, including factory inheritance.
Come funzionano i Retrieval-Augmented Generators (RAG) e quanto i database vettoriali sono fondamentali per poter memorizzare e utilizzare le sorgenti dati aziendali e personali?
This document discusses using Ansible to manage PostgreSQL databases. It begins with an introduction to Ansible, explaining that it is an agentless automation tool used for configuration management, deployment, and orchestration. It then provides an overview of installing and using Ansible to provision infrastructure on Amazon Web Services and install PostgreSQL with streaming replication across multiple servers. Key components of Ansible like templates, variables, tasks, and playbooks are demonstrated in an example repository for automating PostgreSQL configuration management.
This Presentation is an introducing to the IT automation environment, starting from a sys admin point of view.
The purpose of these tools is to help in troubleshooting and handling an heterogeneous it environment to ensure availability and reliability.
Introduction to Ansible - (dev ops for people who hate devops)Jude A. Goonawardena
This presentation covers the fundamentals of Ansible and it is useful for the people who are seeking information to start using Ansible, what it is capable of and how to use it right. I purposely made syntax errors in certain slides to demonstrate how to fix such errors and giving the idea of the importance to write syntax right. If you have any questions please don't hesitate to contact me over my mail address judeashan@gmail.com. All the best!!
The document provides an overview and quick start guide for learning Puppet. It discusses what Puppet is, how to install a Puppet master and agent, Puppet modules and templates, and looping elements in templates. The guide outlines three sessions: 1) configuring a master and agent, 2) using modules and templates, and 3) looping in templates. It provides configuration examples and explains how to generate files on the agent from templates using Puppet runs.
My talk from DevOpsCon Berlin 2016.
Ansible is a radically simple and lightweight provisioning framework which makes your servers and applications easier to provision and deploy. By orchestrating your application deployments you gain benefits such as documentation as code, testability, continuous integration, version control, refactoring, automation and autonomy of your deployment routines, server and application configuration. Ansible uses a language that approaches plain English, uses SSH and has no agents to install on remote systems. It is the simplest way to automate and orchestrate application deployment, configuration management and continuous delivery.
In this tutorial you will be given an introduction to Ansible and learn how to provision Linux servers with a web-proxy, a database and some other packages. Furthermore we will automate zero downtime deployment of a Java application to a load balanced environment.
GPars (Groovy Parallel Systems) is an open-source concurrency and parallelism library for Java and Groovy that gives you a number of high-level abstractions for writing concurrent and parallel code in Groovy (map/reduce, fork/join, asynchronous closures, actors, agents, dataflow concurrency and other concepts), which can make your Java and Groovy code concurrent and/or parallel with little effort.
Ansible is an automation platform that allows users to configure, deploy, and manage applications on servers. It combines multi-node software deployment, configuration management, and task execution. Ansible works by provisioning machines using SSH and executing commands via modules. Playbooks allow users to automate complex deployment workflows through YAML scripts. Roles in Ansible allow for reusable and modular components.
The document provides an overview of the cgroup subsystem and namespace subsystem in Linux, which form the basis of Linux containers. It discusses how cgroups and namespaces enable lightweight virtualization of processes through isolation of resources and namespaces. It then covers specific aspects of cgroups like the memory, CPU, devices, and PIDs controllers. It also summarizes the key differences and improvements in the cgroup v2 implementation, such as having a single unified hierarchy and consistent controller interfaces.
Ansible is an open source automation tool that allows users to configure, manage, and deploy software on remote machines without requiring an agent. It uses SSH to connect to nodes and executes modules written in Python. Playbooks allow users to automate multiple tasks by defining YAML files containing a list of commands. Ansible is agentless and can manage hundreds of nodes with a single command.
This document discusses hooks, events, and the event dispatcher in Drupal 8. It provides an overview of hooks and why they were replaced by events, which allow for more object-oriented and loosely coupled code. It describes how to create event subscribers by implementing the EventSubscriberInterface and defining subscriber methods. It also covers how to dispatch events by extending the base Event class and calling the dispatch method on the event dispatcher service.
Ansible is a tool for configuration management and application deployment. It works by connecting to target systems using SSH and executing commands. Ansible has simple definitions for describing system configurations and states using YAML files and modules written in Python. Modules allow Ansible to assess system states, make changes idempotently to ensure systems match the defined states. Ansible is highly modular and has many contributors due to its architecture, examples, documentation and an active community.
This document provides an overview of Ansible including:
- What Ansible is and how it compares to other configuration management tools like Chef and Puppet
- How Ansible works in an agentless manner over SSH and ensures idempotency
- The basic components of Ansible like playbooks, tasks, modules, variables, and roles
- How to install and configure Ansible including installing on control and managed nodes and using Ansible inventory
- Examples of using Ansible playbooks including tasks, modules, handlers, templates, conditionals, and loops
- Common Ansible commands like ansible-playbook, ansible-inventory, ansible-galaxy and how to use them
Zero Downtime Deployment with Ansible - learn how to provision Linux servers with a web-proxy, a database and automate zero downtime deployment of a Java application to a load balanced environment.
These are the slides from a tutorial held at the Velocity Conference in Barcelona November 19th, 2014.
Git repo: https://github.com/steinim/zero-downtime-ansible
#OktoCampus - Workshop : An introduction to AnsibleCédric Delgehier
- A playbook is defined to check if a pattern is present in the content of a web page retrieved from localhost. The playbook registers the content and fails if the defined pattern is not found.
- The playbook is modified to define different patterns for different host groups - the groups "prod" and "recette" would each have their own unique pattern to check for.
- The playbook uses Ansible modules like uri to retrieve a web page, register to store the content, and fail if a registered pattern is not found in the content. Variables and conditionals allow defining patterns dynamically based on host groups.
Ansible is a simple yet powerful automation engine that uses YAML syntax. It is fast, efficient, and secure as it does not require agents or open ports on servers. Ansible uses inventory to list hosts and groups, modules to define units of work, facts to discover node details, and playbooks to define lists of plays and tasks. Playbooks can use tags to selectively run certain tasks. Roles help organize and reuse groups of tasks. Galaxy allows installing roles from online repositories. Variables precedence determines which value is used. Vault encrypts sensitive files.
factory_girl is a fixtures replacement with a straightforward definition syntax, support for multiple build strategies (saved instances, unsaved instances, attribute hashes, and stubbed objects), and support for multiple factories for the same class, including factory inheritance.
Similar to Dal caos all’automazione di sistemi e infrastrutture IT con Ansible (20)
Come funzionano i Retrieval-Augmented Generators (RAG) e quanto i database vettoriali sono fondamentali per poter memorizzare e utilizzare le sorgenti dati aziendali e personali?
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
Open source, in Python, compatibile con vari LLM ed estendibile tramite plugin: queste sono solo alcune delle potenzialità del framework Cheshire Cat AI!
Breaking REST Chains_ A Fastify & Mercurius Pathway to GraphQL Glory.pdfCommit University
This document contains slides from a presentation by Luca Del Puppo about building GraphQL servers using Fastify and Mercurius. The presentation introduces GraphQL and its advantages over REST APIs. It then discusses why Mercurius is a good choice for building GraphQL servers on Fastify and outlines some features it provides out of the box. The presentation concludes by providing resources for learning more about Fastify, Mercurius and building GraphQL servers.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Collaborazione, Decisionalità e Gestione della Complessità nel Tempo: cosa ...Commit University
Vuoi migliorare la gestione dei progetti a lungo termine con team multidisciplinari e prendere decisioni rischiose in modo sicuro e ponderato? Non perderti il nostro workshop gratuito!
Antonio Dell’Ava, Frontend Developer di eDreams Odigeo, condividerà strategie per aiutarti a ottimizzare la collaborazione nel tuo team, scegliere gli strumenti giusti per ogni situazione e garantire l’evoluzione del progetto nel tempo
A volte essere pigri è una qualità, evita (quasi) tutte le richieste di personalizzazioni lasciando "finestre aperte" nei tuoi componenti generici.
Gli slots sono un modo per passare il contenuto a un componente in Vue.js. Permettono di definire una sezione nel template di un componente che può essere sostituita dall'esterno.
È inoltre possibile assegnare un nome o uno "scope" agli slots, garantendo così maggiore controllo e personalizzazione sul contenuto. I "named slots" consentono di definire più slots nello stesso componente, assegnando dei nomi specifici.
Gli "scoped slots" ti consentono di accedere dall'esterno ai dati interni del componente.
Quante volte mi è capitato di migliorare applicazioni lente e difficili da ottimizzare, ma poi ho scoperto Qwik e tutto è cambiato.
Con il suo nuovo modello mentale è in grado di fare la differenza e scalare facilmente qualsiasi applicazione.
Non conosci questo framework? Nessuna paura...andiamo a scoprirlo assieme!
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Commit University
Backstage is an open source platform for building developer portals that unifies all tooling, services, apps, data, and documentation with a single consistent UI. It allows developers to focus on their work by providing a centralized location to create software, manage what they own, and explore the entire software ecosystem. Backstage has a customizable, extensible plugin architecture built with modern technologies to make it easy to develop for and contribute to developer portals in a cloud-agnostic, vendor-neutral way.
Nella giungla degli ORM node, Prisma sta prendendo sempre più piede. Ha migliorato la Developer Experience, si integra perfettamente con Typescript e funziona dannatamente bene con diversi provider. In questo talk, vedrai come Prisma può migliorare il tuo lavoro quotidiano e come ti permette di avere un maggior controllo della tua code base aiutandoti a prevenire fastidiosi errori nella tua applicazione nodejs.
Decision-making for Software Development Teams - Commit UniversityCommit University
Ti senti bloccato quando si tratta di prendere decisioni critiche su aspetti tecnologici? Vuoi conoscere i processi decisionali collaborativi e come applicarli al tuo team?
Francesco Strazzullo, Chief Operating Officer di Claranet Italia, ti insegnerà gli elementi chiave per prendere decisioni critiche su aspetti tecnologici, gestire i requisiti non funzionali e lavorare con processi decisionali collaborativi.
L’Advisor Leader dell’area Game di NABA, Marco Secchi, ti insegnerà come migliorare la gestione degli oggetti in-game e la loro comunicazione utilizzando Unity Engine e Design Pattern Component.
La prototipazione è un’attività fondamentale per “capire facendo”. Lo scopo della prototipazione non è costruire partendo da un progetto definito ma, piuttosto, acquisire dati preziosi per essere poi più consapevoli di prendere la giusta direzione. Alla base delle attività di prototipazione ci sono spesso strumenti low code e no code. Esistono ormai da diversi anni e ultimamente stanno guadagnando sempre più attenzione nella community per la loro immediatezza e velocità. Abbiamo definito meglio le loro qualità e le opportunità che ci sono nel loro utilizzo.
Durante il talk abbiamo approfondito perché è importante prototipare e come questa attività migliora i nostri progetti. In particolare, abbiamo approfondito l’utilizzo AWS Step Functions Workflow Studio, strumento low code prodotto da AWS. Workflow Studio ci permette di imbastire una state machine basata su step functions con uno strumento visuale drag & drop che semplifica moltissimo il nostro lavoro. Abbiamo analizzato cosa lo contraddistingue da altri strumenti e quali sono i suoi punti di forza. Infine siamo passati alla pratica facendo una piccola esercitazione con AWS Step Functions.
KMM survival guide: how to tackle struggles between Kotlin and SwiftCommit University
Kotlin Multiplatform Mobile (KMM) è un SDK per lo sviluppo di applicazioni Android ed iOS che consente agli sviluppatori di condividere la business logic mantenendo UI/UX native.
Ogni SDK/framework cross/multi platform ha i suoi pro ed i suoi contro, e purtroppo KMM non è l'eccezione che conferma la regola.
Se sei uno sviluppatore Android potresti pensare che tutto funzionerà correttamente, ma purtroppo non sarà così quando dovrai confrontarti con Swift.
Se sei uno sviluppatore iOS saprai che Swift è simile a Kotlin, ma non in tutto, dovrai quindi conoscere alcune sue caratteristiche.
In questo talk vedremo quali sono i problemi che si possono riscontrare nell'interoperabilità tra Kotlin e Swift, i motivi che li causano, e come risolverli.
Stai perdendo la testa cercando di convertire il tuo state manager da Vuex a Pinia?
Ecco una guida step-by-step per affrontare questo task senza difficoltà.
I micro-frontend sono uno degli argomenti più interessanti nel mondo frontend dell'ultimo periodo ma nonostante la loro popolarità, non esistono delle linee guida comuni per svilupparli. micro-lc risponde a questa esigenza e permette di raccogliere in un unico applicativo tanti micro-frontend, orchestrandoli e rendendoli parte della stessa applicazione e non più componenti singoli, scollegati e sconnessi.
Fastify è il web framework del momento e diverse aziende in tutto il mondo lo stanno utilizzando in produzione da anni.
Costruito da zero per essere il più veloce possibile, con un overhead minima e una potente architettura a plugin, Fastify fornisce la migliore esperienza di sviluppo, senza sacrificare prestazioni e sicurezza.
AI in customer support Use cases solutions development and implementation.pdfmahaffeycheryld
AI in customer support will integrate with emerging technologies such as augmented reality (AR) and virtual reality (VR) to enhance service delivery. AR-enabled smart glasses or VR environments will provide immersive support experiences, allowing customers to visualize solutions, receive step-by-step guidance, and interact with virtual support agents in real-time. These technologies will bridge the gap between physical and digital experiences, offering innovative ways to resolve issues, demonstrate products, and deliver personalized training and support.
https://www.leewayhertz.com/ai-in-customer-support/#How-does-AI-work-in-customer-support
Open Channel Flow: fluid flow with a free surfaceIndrajeet sahu
Open Channel Flow: This topic focuses on fluid flow with a free surface, such as in rivers, canals, and drainage ditches. Key concepts include the classification of flow types (steady vs. unsteady, uniform vs. non-uniform), hydraulic radius, flow resistance, Manning's equation, critical flow conditions, and energy and momentum principles. It also covers flow measurement techniques, gradually varied flow analysis, and the design of open channels. Understanding these principles is vital for effective water resource management and engineering applications.
Prediction of Electrical Energy Efficiency Using Information on Consumer's Ac...PriyankaKilaniya
Energy efficiency has been important since the latter part of the last century. The main object of this survey is to determine the energy efficiency knowledge among consumers. Two separate districts in Bangladesh are selected to conduct the survey on households and showrooms about the energy and seller also. The survey uses the data to find some regression equations from which it is easy to predict energy efficiency knowledge. The data is analyzed and calculated based on five important criteria. The initial target was to find some factors that help predict a person's energy efficiency knowledge. From the survey, it is found that the energy efficiency awareness among the people of our country is very low. Relationships between household energy use behaviors are estimated using a unique dataset of about 40 households and 20 showrooms in Bangladesh's Chapainawabganj and Bagerhat districts. Knowledge of energy consumption and energy efficiency technology options is found to be associated with household use of energy conservation practices. Household characteristics also influence household energy use behavior. Younger household cohorts are more likely to adopt energy-efficient technologies and energy conservation practices and place primary importance on energy saving for environmental reasons. Education also influences attitudes toward energy conservation in Bangladesh. Low-education households indicate they primarily save electricity for the environment while high-education households indicate they are motivated by environmental concerns.
Height and depth gauge linear metrology.pdfq30122000
Height gauges may also be used to measure the height of an object by using the underside of the scriber as the datum. The datum may be permanently fixed or the height gauge may have provision to adjust the scale, this is done by sliding the scale vertically along the body of the height gauge by turning a fine feed screw at the top of the gauge; then with the scriber set to the same level as the base, the scale can be matched to it. This adjustment allows different scribers or probes to be used, as well as adjusting for any errors in a damaged or resharpened probe.
Digital Twins Computer Networking Paper Presentation.pptxaryanpankaj78
A Digital Twin in computer networking is a virtual representation of a physical network, used to simulate, analyze, and optimize network performance and reliability. It leverages real-time data to enhance network management, predict issues, and improve decision-making processes.
Applications of artificial Intelligence in Mechanical Engineering.pdfAtif Razi
Historically, mechanical engineering has relied heavily on human expertise and empirical methods to solve complex problems. With the introduction of computer-aided design (CAD) and finite element analysis (FEA), the field took its first steps towards digitization. These tools allowed engineers to simulate and analyze mechanical systems with greater accuracy and efficiency. However, the sheer volume of data generated by modern engineering systems and the increasing complexity of these systems have necessitated more advanced analytical tools, paving the way for AI.
AI offers the capability to process vast amounts of data, identify patterns, and make predictions with a level of speed and accuracy unattainable by traditional methods. This has profound implications for mechanical engineering, enabling more efficient design processes, predictive maintenance strategies, and optimized manufacturing operations. AI-driven tools can learn from historical data, adapt to new information, and continuously improve their performance, making them invaluable in tackling the multifaceted challenges of modern mechanical engineering.
2. Table of contents
Introduction
Ansible commands
Introducing modules
Working with the inventory
Ansible playbooks
Reusing logic with Ansible Roles
Sharing Roles on Ansible Galaxy
Custom module development
Ansible and Docker
Real 3 tiers architecture demo
3. About Ansible
“Ansible is a universal language, unraveling
the mystery of how work gets done. Turn
tough tasks into repeatable playbooks. Roll
out enterprise-wide protocols with the push of
a button. Give your team the tools to
automate, solve, and share”
“Simple, agentless IT automation
that anyone can use”
by
“Automate: deploy apps.
Manage systems. Crush
complexity”
“Accelerate: solve problems
once and share the results
with everyone”
“Collaborate: break down
silos, create a culture of
automation”
“Integrate: automate the
technologies you already use”
6. First Ansible commands (ad-hoc)
# reboot all servers in the groupA
user@mgmt:/$ ansible groupA -a "/sbin/reboot"
# reboot all servers in the groupA in 12 parallel forks
user@mgmt:/$ ansible groupA -a "/sbin/reboot" -f 12
# reboot all servers in the groupA impersonating another user
user@mgmt:/$ ansible groupA -a "/sbin/reboot" -u anotheruser
7. Commands using Ansible modules
"
user@mgmt:/$ ansible groupA -m ping
# as bruce
user@mgmt:/$ ansible groupA -m ping -u bruce
# as bruce, sudoing to root
user@mgmt:/$ ansible groupA -m ping -u bruce --sudo
# as bruce, sudoing to batman
user@mgmt:/$ ansible groupA -m ping -u bruce --sudo --sudo-user batman
# With latest version of ansible `sudo` is deprecated so use become
# as bruce, sudoing to root
user@mgmt:/$ ansible groupA -m ping -u bruce -b
# as bruce, sudoing to batman
user@mgmt:/$ ansible groupA -m ping -u bruce -b --become-user batman
Modules in ad-hoc commands are specified with -m flag
8. Get help for each module
"
Documentation for each module (in this case yum) can be
accessed from the command line with the ansible-doc
tool:
user@mgmt$ ansible-doc yum
For a list of all available modules, see Module Index, or run the
following at a command prompt:
user@mgmt$ ansible-doc -l
9. Modules idempotency
# not idempotent, it overwrites ~/.zshrc any time is run
user@mgmt:/$ ansible groupA -m command -a "cp ~/.oh-my-zsh/
templates/zshrc.zsh-template ~/.zshrc"
Modules should be idempotent*, and should avoid making any changes if
they detect that the current state matches the desired final state**.
*An operation is idempotent if the result of performing it once is exactly the
same as the result of performing it repeatedly without any intervening
actions.
**You have to follow this rules invoking your commands or within you
Playbooks
user@mgmt:/$ ansible groupA -m command -a "creates=~/.zshrc cp
~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc"
hostA | SUCCESS | rc=0 >>
skipped, since ~/.zshrc exists
10. Working with the inventory
The inventory file can be in one of many formats, depending on the
inventory plugins you have. For this example, the format for /etc/ansible/
hosts is an INI-like (one of Ansible’s defaults) and looks like this:
user@mgmt:/$ cat /etc/ansible/hosts
mail.example.com
[webservers]
foo.example.com
bar.example.com
[dbservers]
one.example.com
two.example.com
user@mgmt:/$ cat /home/user/inventory.yaml
---
all:
hosts:
mail.example.com:
children:
webservers:
hosts:
foo.example.com:
bar.example.com:
dbservers:
hosts:
one.example.com:
two.example.com:
A YAML version would look like:
11. Working with the inventory
Host Variables
Are defined in the inventory file in the form of name=value
pairs
user@mgmt:/$ cat /etc/ansible/hosts
[loadbalancer]
lb01 var=value
user@mgmt:/$ ansible loadbalancer -m command -a "echo
{{var}}"
lb01 | CHANGED | rc=0 >>
value
and used later in ad-hoc commands (or playbooks)
12. Working with the inventory
If you are adding a lot of hosts following similar patterns, you can do this
rather than listing each hostname:
user@mgmt:/$ cat /etc/ansible/hosts
[webservers]
www[01:50].example.com
For numeric patterns, leading zeros can be included or removed, as
desired. Ranges are inclusive. You can also define alphabetic ranges:
user@mgmt:/$ cat /etc/ansible/hosts
[databases]
db-[a:f].example.com
You can also select the connection type and user on a per host basis:
user@mgmt:/$ cat /etc/ansible/hosts
[targets]
localhost ansible_connection=local
other1.example.com ansible_connection=ssh ansible_user=mpdehaan
other2.example.com ansible_connection=ssh ansible_user=mdehaan
13. Working with the inventory
Groups of Groups, and Group Variables
It is also possible to make groups of groups using the :children suffix (INI)
or children: element (YAML)
user@mgmt:/$ cat /etc/ansible/hosts
[atlanta]
host1
host2
[raleigh]
host2
host3
[southeast:children]
atlanta
raleigh
[southeast:vars]
some_server=foo.southeast.example.com
halon_system_timeout=30
self_destruct_countdown=60
escape_pods=2
[usa:children]
southeast
northeast
southwest
northwest
user@mgmt:/$ cat /home/user/inventory.yaml
all:
children:
usa:
children:
southeast:
children:
atlanta:
hosts:
host1:
host2:
raleigh:
hosts:
host2:
host3:
vars:
some_server: foo.southeast.example.com
halon_system_timeout: 30
self_destruct_countdown: 60
escape_pods: 2
northeast:
northwest:
southwest:
=
14. Ansible connection to targets
Ansible can connect to targets using multiple drivers (plugins)
user@mgmt:/$ ansible-doc -t connection -l
buildah Interact with an existing buildah container
chroot Interact with local chroot
docker Run tasks in docker containers
funcd Use funcd to connect to target
httpapi Use httpapi to run command on network appliances
iocage Run tasks in iocage jails
jail Run tasks in jails
kubectl Execute tasks in pods running on Kubernetes.
libvirt_lxc Run tasks in lxc containers via libvirt
local execute on controller
lxc Run tasks in lxc containers via lxc python library
lxd Run tasks in lxc containers via lxc CLI
netconf Provides a persistent connection using the netconf protocol
network_cli Use network_cli to run command on network appliances
oc Execute tasks in pods running on OpenShift.
paramiko_ssh Run tasks via python ssh (paramiko)
persistent Use a persistent unix socket for connection
psrp Run tasks over Microsoft PowerShell Remoting Protocol
saltstack Allow ansible to piggyback on salt minions
ssh connect via ssh client binary (default)
winrm Run tasks over Microsoft's WinRM
zone Run tasks in a zone instance
15. Ansible playbooks
Playbooks are the basis for configuration management and multi-machine
deployment system
Playbooks are expressed in YAML format.
A Playbook contains one or more Plays, each Play contains one ore more
Tasks.
16. Ansible playbooks
Task
The goal of each Task is to execute a module, with very specific arguments.
Variables, as mentioned above, can be used in arguments to modules.
user@mgmt:/$ cat /home/user/myplaybook.yaml
---
- hosts: webservers
remote_user: root
tasks:
- name: ensure postgresql is at the latest version
yum:
name: postgresql
state: latest
- name: ensure that postgresql is started
service:
name: postgresql
state: started
The first task installs the last version of postgresql, the second starts it
17. Ansible playbooks
Modules in a Task
Tasks can be declared using the legacy action: module options format
user@mgmt:/$ cat /home/user/myplaybook.yaml
…
tasks:
- name: ensure postgresql is at the latest version
action: template src=templates/foo.j2 dest=/etc/foo.conf
but it is recommended that you use the more conventional module:
options format.
user@mgmt:/$ cat /home/user/myplaybook.yaml
…
tasks:
- name: ensure postgresql is at the latest version
template:
src: template.j2
dest: /etc/foo.conf
18. Ansible playbooks
Running a Playbook
Now that you’ve learned playbook syntax, how do you run a playbook? It’s
simple. Let’s run a playbook from the management/control host
user@mgmt:/$ ansible-playbook /home/user/myplaybook.yaml
19. Ansible playbooks
Playbook output (run 1)
Given the following playbook nginx.yml
ansible@mgmt:/$ ansible-playbook /home/ansible/nginx.yml
PLAY [loadbalancer] *****************************************************
TASK [Gathering Facts] **************************************************
ok: [lb01]
TASK [Install Nginx] ****************************************************
changed: [lb01]
PLAY RECAP **************************************************************
lb01 : ok=2 changed=1 unreachable=0 failed=0
---
- hosts: loadbalancer
tasks:
- name: Install Nginx
apt: pkg=nginx state=present update_cache=true
become: yes
This will be the output
21. Ansible playbooks
Defining a handler
Handler runs if the corresponding task triggers them
ansible@mgmt:/$ vi /home/ansible/nginx.yml
---
- hosts: loadbalancer
tasks:
- name: Install Nginx
apt: pkg=nginx state=present update_cache=true
become: yes
notify:
- Start Nginx
handlers:
- name: Start Nginx
service: name=nginx state=started
become: yes
22. Ansible playbooks
Loops (through map collection)
Often you’ll want to do many things in one task, such as create a lot of
users, install a lot of packages, or repeat a polling step until a certain result
is reached.
To save some typing, repeated tasks can be written in short-hand like so:
ansible@mgmt:/$ vi /home/ansible/create_users.yml
---
- hosts: loadbalancer
tasks:
- name: add several users
user:
name: "{{ item.name }}"
groups: "{{ item.group }}”
state: present
loop:
- { name: 'testuser1', group: 'wheel' }
- { name: 'testuser2', group: 'root' }
23. Ansible playbooks
Using facts (introducing Conditionals)
After having gathered the fact ansible_distribution on the target system, Ansible
knows when to execute apt-get install apache2 or yum install httpd
ansible@mgmt:/$ vi /home/ansible/apache.yml
---
- hosts: loadbalancer
tasks:
- name: install apache (apt)
when: ansible_distribution == "Ubuntu"
apt:
name: apache2
state: present
- name: install apache (yum)
when: ansible_distribution == "CentOS"
yum:
name: httpd
state: present
24. Ansible playbooks
Blocks
Blocks allow for logical grouping of tasks and in play error handling. Most of what
you can apply to a single task (with the exception of loops) can be applied at the
block level, which also makes it much easier to set data or directives common to
the tasks.
- hosts: loadbalancer
tasks:
- name: Install Apache
block:
- yum:
name: "{{ item }}"
state: installed
with_items:
- httpd
- memcached
- template:
src: templates/src.j2
dest: /etc/foo.conf
- service:
name: bar
state: started
enabled: True
when: ansible_facts['distribution'] == 'CentOS'
become: true
become_user: root
In the example, each of the
3 tasks will be executed
after appending the when
condition from the block
and evaluating it in the
task’s context. Also they
inherit the privilege
escalation directives
enabling “become to root”
for all the enclosed tasks.
25. Ansible playbooks
Error Handling
The tasks in the block would execute normally, if there is any error the rescue
section would get executed with whatever you need to do to recover from the
previous error.
- hosts: loadbalancer
tasks:
- name: Attempt and graceful roll back demo
block:
- debug:
msg: 'I execute normally'
- name: i force a failure
command: /bin/false
- debug:
msg: 'I never execute, due to the above task failing,
:-('
rescue:
- debug:
msg: 'I caught an error'
- name: i force a failure in middle of recovery! >:-)
command: /bin/false
- debug:
msg: 'I also never execute :-('
always:
- debug:
msg: "This always executes"
The always section runs
no matter what previous
error did or did not occur
in the block and rescue
sections.
26. Ansible playbooks
Privilege escalation
For example, to manage a system service (which requires root privileges) when connected as a
non-root user (this takes advantage of the fact that the default value of become_user is root):
- name: Ensure the httpd service is running
service:
name: httpd
state: started
become: yes
To run a command as the apache user:
- name: Run a command as the apache user
command: somecommand
become: yes
become_user: apache
27. Reusing logic with Ansible Roles
Why Roles
Roles are ways of automatically loading certain vars_files, tasks, and handlers
based on a known file structure. Grouping content by roles also allows easy
sharing of roles with other users.
Example project structure:
ansible@control:~$ ansible-galaxy init test-role-1
ansible@control:~$ tree test-role-1
test-role-1
├── README.md
├── defaults
│ └── main.yml
├── files
├── handlers
│ └── main.yml
├── meta
│ └── main.yml
├── tasks
│ └── main.yml
├── templates
├── tests
│ ├── inventory
│ └── test.yml
└── vars
28. Reusing logic with Ansible Roles
Using Roles
The classic way to use roles is via the roles: option for a given play:
---
- hosts: webservers
roles:
- common
- webservers
- test-role-1
29. Sharing roles on Ansible Galaxy
Galaxy, is a free site for finding,
downloading, and sharing
community developed roles.
Downloading roles from Galaxy is a
great way to jumpstart your
automation projects.
You can also use the site to share
roles that you create. By
authenticating with the site using
your GitHub account, you’re able to
import roles, making them available
to the Ansible community. Imported
roles become available in the
Galaxy search index and visible on
the site, allowing users to discover
and download them.
https://galaxy.ansible.com
30. Sharing roles on Ansible Galaxy
Downloading roles
Use the ansible-galaxy command to download roles from the Galaxy website
ansible@control:~$ ansible-galaxy install <<username>>.<<role_name>>
Be aware that by default Ansible downloads roles to the path specified by the
environment variable ANSIBLE_ROLES_PATH. This can be set to a series of
directories (i.e. /etc/ansible/roles:~/.ansible/roles), in which case the first writable path
will be used. When Ansible is first installed it defaults to /etc/ansible/roles, which
requires root privileges.
You can override this by setting the environment variable in your session, defining
roles_path in an ansible.cfg file, or by using the –roles-path option. The following
provides an example of using –roles-path to install the role into the current working
directory:
ansible@control:~$ ansible-galaxy install --roles-path . geerlingguy.apache
31. Sharing roles on Ansible Galaxy
Installing versioned roles
ansible@control:~$ ansible-galaxy install geerlingguy.apache,v1.0.0
You can install a specific version of a role from Galaxy by appending a
comma and the value of a GitHub release tag. For example:
It’s also possible to point directly to the git repository and specify a branch
name or commit hash as the version. For example, the following will install
a specific commit:
ansible@control:~$ ansible-galaxy install git+https://github.com/geerlingguy/ansible-role-
apache.git,0b7cd353c0250e87a26e0499e59e7fd265cc2f25
32. Sharing roles on Ansible Galaxy
Searching for roles
ansible@control:~$ ansible-galaxy search elasticsearch --author geerlingguy
Found 2 roles matching your search:
Name Description
---- -----------
geerlingguy.elasticsearch Elasticsearch for Linux.
geerlingguy.elasticsearch-curator Elasticsearch curator for Linux.
Search the Galaxy database by tags, platforms, author and multiple keywords. For
example:
33. Sharing roles on Ansible Galaxy
Authenticate with Galaxy
ansible@control:~$ ansible-galaxy login
ansible-galaxy login
We need your GitHub login to identify you.
This information will not be sent to Galaxy, only to api.github.com.
The password will not be displayed.
Use --github-token if you do not want to enter your password.
Github Username: dsmith
Password for dsmith:
Successfully logged into Galaxy as dsmith
Using the import, delete and setup commands to manage your roles on the Galaxy website requires
authentication, and the login command can be used to do just that. Before you can use the login command, you
must create an account on the Galaxy website.
The login command requires using your GitHub credentials. You can use your username and password, or you
can create a personal access token. If you choose to create a token, grant minimal access to the token, as it is
used just to verify identify.
The following shows authenticating with the Galaxy website using a GitHub username and password:
34. Sharing roles on Ansible Galaxy
Import a Role into Galaxy
The import command requires that you first authenticate using the login command. Once authenticated you can
import any GitHub repository that you own or have been granted access.
Use the following to import to role:
ansible@control:~$ ansible-galaxy import github_user github_repo
Successfully submitted import request 41
Starting import 41: role_name=myrole repo=githubuser/ansible-role-repo ref=
Retrieving GitHub repo githubuser/ansible-role-repo
Accessing branch: master
Parsing and validating meta/main.yml
Parsing galaxy_tags
Parsing platforms
Adding dependencies
Parsing and validating README.md
Adding repo tags as role versions
Import completed
Status SUCCESS : warnings=0 errors=0
37. Custom module development
ansible@control:~$ cat github_repo_playbook.yml
- hosts: localhost
vars:
- github_token: "{{ github_token }}"
- username: "{{ username }}"
- repo_name: "{{ repo_name }}"
tasks:
- name: "Create a github Repo"
github_repo:
github_auth_key: "{{ github_token }}"
name: "{{ repo_name }}"
description: "Repo {{ repo_name }} created by Ansible"
private: yes
has_issues: no
has_wiki: no
has_downloads: no
state: present
38. Custom module development
ansible@control:~$ ansible-playbook -vvv -e github_token=XXX -e username=myuser -e
repo_name=myrepo github_repo_playbook.yml
PLAY [localhost] ********************************************************************
TASK [Gathering Facts] **************************************************************
ok: [localhost]
TASK [Create a github Repo] *********************************************************
changed: [localhost]
PLAY RECAP **************************************************************************
localhost : ok=3 changed=1 unreachable=0 failed=0
39. Ansible and Docker
docker_container module
ansible@control:~$ cat play.yml
---
- hosts: localhost
tasks:
- name: Create a new container
docker_container:
docker_host: tcp://10.5.5.5:2375
name: mynewcontainer
image: busybox
state: started
cpu_period: 1000 # Limit CPU CFS (Completely Fair Scheduler) period
cpu_quota: 1000 # Limit CPU CFS (Completely Fair Scheduler) quota
cpu_shares: 100 # CPU shares (relative weight).
cpuset_cpus: 1,3 # CPUs in which to allow execution 1,3 or 1-3.
ansible@control:~$ ansible-playbook play.yml
…
40. Ansible and Docker
Ansible within Docker container
ansible@control01:~$ docker run --rm -it
-v ~/.ssh/id_rsa:/root/.ssh/id_rsa
-v ~/.ssh/id_rsa.pub:/root/.ssh/id_rsa.pub
-v $(pwd):/ansible/playbooks
-v /etc/ansible:/etc/ansible
-v /etc/hosts:/etc/hosts
dennydgl1/ansible-playbook -u ansible webserver.yml
1) Build the image (Dockerfile at https://github.com/sunnyvale-academy/
SNY.RHT.ANS.01.01.00/blob/master/docker/labs/ansible-in-docker/solutions/
Dockerfile)
ansible@control01:~$ docker build -t dennydgl1/ansible-playbook .
…
ansible@control01:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
dennydgl1/ansible-playbook latest d0dd5754162d About a minute ago 162MB
alpine 3.7 bc8fb6e6e49d 3 hours ago 4.21MB
2) Use Ansible within a Docker container
42. Real 3 tiers architecture demo
lb01
app01
app02
db01
HTTP load balancer Web/app server Database
Proxy to
Proxy to
Connect to
Connect to
Access to
• Nginx
• Apache
• Demo App
• Python
• MySQL