consul | Development repository for the consul cookbook | Configuration Management library

 by   sous-chefs Ruby Version: 5.6.0 License: Apache-2.0

kandi X-RAY | consul Summary

kandi X-RAY | consul Summary

consul is a Ruby library typically used in Devops, Configuration Management, Terraform, Chef applications. consul has no bugs, it has a Permissive License and it has low support. However consul has 3 vulnerabilities. You can download it from GitHub.

Application cookbook which installs and configures Consul. Consul is a tool for discovering and configuring services within your infrastructure. This is an application cookbook which takes a simplified approach to configuring and installing Consul. Additionally, it provides Chef primitives for more advanced configuration.
Support
    Quality
      Security
        License
          Reuse

            kandi-support Support

              consul has a low active ecosystem.
              It has 189 star(s) with 250 fork(s). There are 35 watchers for this library.
              OutlinedDot
              It had no major release in the last 12 months.
              There are 7 open issues and 196 have been closed. On average issues are closed in 499 days. There are 1 open pull requests and 0 closed requests.
              It has a neutral sentiment in the developer community.
              The latest version of consul is 5.6.0

            kandi-Quality Quality

              consul has 0 bugs and 0 code smells.

            kandi-Security Security

              consul has 3 vulnerability issues reported (0 critical, 2 high, 1 medium, 0 low).
              consul code analysis shows 0 unresolved vulnerabilities.
              There are 0 security hotspots that need review.

            kandi-License License

              consul is licensed under the Apache-2.0 License. This license is Permissive.
              Permissive licenses have the least restrictions, and you can use them in most projects.

            kandi-Reuse Reuse

              consul releases are available to install and integrate.
              Installation instructions are not available. Examples and code snippets are available.
              consul saves you 958 person hours of effort in developing the same functionality from scratch.
              It has 2183 lines of code, 60 functions and 46 files.
              It has high code complexity. Code complexity directly impacts maintainability of the code.

            Top functions reviewed by kandi - BETA

            kandi has reviewed consul and discovered the below as its top functions. This is intended to give you an instant insight into consul implemented functionality, and help decide if they suit your requirements.
            • Calculates the binary string for a given file .
            • Yields a retryable block .
            • Extracts the resources from the resource .
            • Run agent in agent
            • Joins the file path .
            • Convert path to absolute path
            • returns true if the architecture is a string
            • returns true if the platform is defined
            Get all kandi verified functions for this library.

            consul Key Features

            No Key Features are available at this moment for consul.

            consul Examples and Code Snippets

            No Code Snippets are available at this moment for consul.

            Community Discussions

            QUESTION

            Kubernetes access to port on node from inside pod?
            Asked 2021-Jun-07 at 06:23

            I am trying to access a service listening on a port running on every node in my bare metal (Ubuntu 20.04) cluster from inside a pod. I can use the real IP address of one of the nodes and it works. However I need pods to connect to the port on their own node. I cant use '127.0.0.1' inside a pod.

            More info: I am trying to wrangle a bunch of existing services into k8s. We use an old version of Consul for service discovery and have it running on every node providing DNS on 8600. I figured out how to edit the coredns Corefile to add a consul { } block so lookups for .consul work.

            ...

            ANSWER

            Answered 2021-Jun-07 at 06:23

            Comment from @mdaniel worked. Tx.

            Edit coredns deployment. Add this to the container after volumeMounts:

            Source https://stackoverflow.com/questions/67839732

            QUESTION

            Nomad High Availability with Traefik
            Asked 2021-Jun-07 at 01:18

            I've decided to give Nomad a try, and I'm setting up a small environment for side projects in my company.

            Although the documentation on Nomad/Consul is nice and detailed, they don't reach the simple task of exposing a small web service to the world.

            Following this official tutorial to use Traefik as a load balancer, how can I make those exposed services reachable?

            The tutorial has a footnote stating that the services could be accessed from outside the cluster by port 8080.

            But in a cluster where I have 3 servers and 3 clients, where should I point my DNS to? Should a DNS with failover pointing to the 3 clients be enough? Do I still need a load balancer for the clients?

            ...

            ANSWER

            Answered 2021-Jun-07 at 01:18

            There are multiple ways you could handle distributing the requests across your servers. Some may be more preferable than the other depending on your deployment environment.

            The Fabio load balancer docs have a section on deployment configurations which I'll use as a reference.

            Direct with DNS failover

            In this model, you could configure DNS to point to the IPs of all three servers. Clients would receive all three IPs back in response to a DNS query, and randomly connect to one of the available instances.

            If an IP is unhealthy, the client should retry the request to one of the other IPs, but clients may experience slower response times if a server is unavailable for an extended period of time and the client is occasionally routing requests to that unavailable IP.

            You can mitigate this issue by configuring your DNS server to perform health checking of backend instances (assuming it supports it). AWS Route 53 provides this functionality (see Configuring DNS failover). If your DNS server does not support health checking, but provides an API to update records, you can use Consul Terraform Sync to automate adding/removing server IPs as the health of the Fabio instances changes in Consul.

            Fabio behind a load balancer

            As you mentioned the other option would be to place Fabio behind a load balancer. If you're deploying in the cloud, this could be the cloud provider's LB. The LB would give you better control over traffic routing to Fabio, provide TLS/SSL termination, and other functionality.

            If you're on-premises, you could front it with any available load balancer like F5, A10, nginx, Apache Traffic Server, etc. You would need to ensure the LB is deployed in a highly available manner. Some suggestions for doing this are covered in the next section.

            Direct with IP failover

            Whether you're running Fabio directly on the Internet, or behind a load balancer, you need to make sure the IP which clients are connecting to is highly available.

            If you're deploying on-premises, one method for achieving this would be to assign a common loopback IP each of the Fabio servers (e.g., 192.0.2.10), and then use an L2 redundancy protocol like Virtual Router Redundancy Protocol (VRRP) or an L3 routing protocol like BGP to ensure the network routes requests to available instances.

            L2 failover

            Keepalived is a VRRP daemon for Linux. There can find many tutorials online for installing and configure in.

            L3 failover w/ BGP

            GoCast is a BGP daemon built on GoBGP which conditionally advertises IPs to the upstream network based on the state of health checks. The author of this tool published a blog post titled BGP based Anycast as a Service which walks through deploying GoCast on Nomad, and configuring it to use Consul for health information.

            L3 failover with static IPs

            If you're deploying on-premises, a more simple configuration than the two aforementioned solutions might be to configure your router to install/remove static routes based on health checks to your backend instances. Cisco routers support this through their IP SLA feature. This tutorial walks through a basic setup configuration http://www.firewall.cx/cisco-technical-knowledgebase/cisco-routers/813-cisco-router-ipsla-basic.html.

            As you can see, there are many ways to configure HA for Fabio or an upstream LB. Its hard to provide a good recommendation without knowing more about your environment. Hopefully one of these suggestions will be useful to you.

            Source https://stackoverflow.com/questions/67853978

            QUESTION

            Ribbon load balancer client not disabling in Spring boot 2.4.3 & Cloud 2020.0.1. Using Consul for load balancing instead
            Asked 2021-Jun-06 at 15:13

            I'm currently working on a microservices application for my internship using Consul for service discovery and feign clients for communicating between the services. When we started working on the existing project which already was built using microservices, we upgraded Spring boot to 2.4.3 & cloud to 2020.0.1, so that we could make use of Java 15 to use records instead of normal classes for dtos. The problem we have now is that, whenever we make a call to a composite service, that will try to retrieve data from multiple services (for example users and teams service), that we get the following stacktrace:

            ...

            ANSWER

            Answered 2021-Jun-04 at 07:23

            Can you try excluding ribbon dependency as shown below

            Source https://stackoverflow.com/questions/67717907

            QUESTION

            How can I join a Consul agent to a Consul cluster via a Consul server running in a different Fargate task with CloudFormation?
            Asked 2021-Jun-04 at 22:08

            I'm currently working as an intern and have to host a microservice application. I chose to use AWS ECS in combination with Fargate tasks to host a Consul Connect Service Mesh that provides service discovery, intentions, Mtls and so on for the application. My set-up is as follows:

            • 1 Fargate task (in a service) with a Consul server container.
            • x Fargate tasks (in a service) with a Consul agent, Consul Connect sidecar and a microservice container.

            I am using CloudFormation to deploy that infrastructure automatically.

            The problem:

            I need to join the Consul agent running in one Fargate-task to the Consul cluster started in another Fargate task (task of the server) using CloudFormation. The problem I have with doing that is that I did not find any way to get the IP address to join the agent to the cluster.

            Does anyone know how I can get the IP address of a Fargate task in CloudFormation or the best practice way of doing this?

            If I am not mistaken you can only join a Consul agent to a Consul cluster using IP, DNS name or Cloud metadata. The first and second one I could not retrieve using CloudFormation and for the third one I found that it might not be possible (I could be wrong, but thats what I read so far).

            Also I tried both the Consul agent -ui [...] -join and -retry-join flag, but neither one worked. I also tried creating an internal loadbalancer for the task with the Consul server from which I used the DNS name to try to join the Cluster, but that did not work either (I have never set-up a loadbalancer properly on AWS yet so I might have done that wrong). I tried that with the loadbalancer forwarding traffic to port 8500 (which was the wrong port I think) and afterwards with port 8301 (which I think was the right port). But I kept getting the message that there was no Consul Cluster on that address.

            Can anyone tell me how I can proceed?

            Thank you in advance!

            ...

            ANSWER

            Answered 2021-Jun-04 at 22:08

            Thanks to a very smart colleague of mine, I found that putting a load balancer (which I set up wrong earlier) in front of the ECS service with the Consul Server Fargate task solved my problem. The load balancer listener should listen on the SERF port 8301 tcp_udp and forward traffic to the service with that protocol and port.

            Source https://stackoverflow.com/questions/67331638

            QUESTION

            Why I don't see LEADER badge on server?
            Asked 2021-Jun-01 at 21:00

            I have 3 consul servers in cluster. They were recovered from outage. Now they are running. Everything works. I checked with API who is leader, and I found it out. But weird thing - I don't see LEADER badge in UI. Morover I see "No service checks" on each server. I tried to restart each server, but it didn't help. How to fix it?

            ...

            ANSWER

            Answered 2021-Jun-01 at 21:00

            The leader badge is shown under the Nodes view in the UI, not the Services view.

            Aside from the built-in Serf health check, the Consul servers do not have any additional service checks associated with them.

            Source https://stackoverflow.com/questions/67795004

            QUESTION

            Which part of Orleans is actually distributed?
            Asked 2021-May-30 at 02:05

            There is a couple of confusing points in the documentation that make me struggle to understand how exactly distribution across the cluster happens in Orleans. Hence, the questions.

            Question #1

            Orleans claims to have a built-in distribution capabilities to distribute across multiple servers. To me it sounds that Orleans can act as a load balancer itself and can scale out automatically. Thus, if I deploy Orleans app to several servers, then service discovery and load management should happen automatically, correct?

            In this case, why some docs and articles suggest using other tools, like Ocelot or Consul, as a single entry point to Orleans cluster?

            Question #2

            I would like to use simple but distributed in-memory storage across several servers, like Redis or Apache Ignite, and I would like to know if it's possible to use a simple grain as this kind of a data storage?

            Let's say, one grain will store a collection of restaurants and some other grain will keep track of the last 1000 visitors for selected restaurant. Can I activate these 2 grains only once as a singleton collection, add or remove records to each collection, and use these 2 grains as in-memory storage evenly available to all nodes in the cluster? Also, if answer is yes, do I need to add locks to these collections or each grain always exists in a single thread?

            ...

            ANSWER

            Answered 2021-May-30 at 02:05
            1. Service discovery and load management happen automatically indeed. Consul is not a strong required. The only external requirement is a Membership table provider - something that is used internally by Orleans Clustering. There are many build in Membership table providers that come already built-in with Orleans. For example, Azure table storage. all you need is to configure Orleans to use it and of course have Azure storage account. Consul is another alternative to Membership table provider and there are more.

            Another thing that does not come built-in is infrastructure scaling. If your service demand increases, something need to ask the infrastructure provider (Cloud Provider) to add more Servers. Once servers are added, Orleans will automatically adjust the workload and load balance across the new servers as well. But figuring out that more servers are needed and adding them is not done by Orleans itself (there likely some externally contributed tools to do that. maybe K8 can be configured to do that? I am not completely sure about that).

            1. Yes, you can use those 2 grains as in-memory storage, just like you wrote. And no, you do not need to use locks. All grains are single threaded.

            Source https://stackoverflow.com/questions/67756387

            QUESTION

            How to setup local development environment for Nomad+Consul Service Mesh
            Asked 2021-May-21 at 23:07

            As per Hashicorp documentation on Nomad+Consul, consul service mesh cannot be run on MacOS/Windows, since it does not support bridge network.

            https://www.nomadproject.io/docs/integrations/consul-connect

            What is the recommended way to setup a local development environment for Nomad+Consul?

            ...

            ANSWER

            Answered 2021-May-21 at 23:07

            I'd suggest to have a look at setting up your local environment using Vagrant (which is also a product for Hashicorp) and Virtual box. There are plenty examples online, for example

            • Here is one of the most recent setup with Nomad and Consul, although it is not parametrised much.

            • Here is one with the core Hashicorp stack, i.e. Nomad, Vault and Consul. This repo is quite old but it merely means that it uses old versions of binaries, which should be easy to update.

            • Here is one with only Vault and Consul, but you can add Nomad in a similar way. In fact, this Vargrant setup and how files are structured seems to me pretty close to the one above

            I've run the first two previous week with a simple

            Source https://stackoverflow.com/questions/67600142

            QUESTION

            Jhipster control center not showing applications
            Asked 2021-May-14 at 22:36

            I just created a fresh Jhipster 7.0.1 project and I'm trying to use the Jhipster Control center.

            In the official page, it says:

            As soon as an application registers on a server (consul or eureka), it will become available in the list.

            I just started all my microservices, they are all registered in the Jhipster registry but they are still not showing up on the Control center.

            Am I forgetting to do something? I didn't do any extra configuration, just created the project and started.

            ...

            ANSWER

            Answered 2021-May-14 at 22:36

            To use JHipster Control Center, you must edit src/main/docker/jhipster-control-center.yml to configure it to use your chosen discovery service (in your case Eureka with the JHipster registry).

            The instructions are in the jhipster-control-center.yml file comments, you got to set 2 environment variables in jhipster-control-center.yml and remove "127.0.0.1:" prefix from ports in the jhipster-registry.yml file.

            Source https://stackoverflow.com/questions/67462833

            QUESTION

            Get second last value in each row of dataframe, R
            Asked 2021-May-14 at 14:45

            I am trying to get the second last value in each row of a data frame, meaning the first job a person has had. (Job1_latest is the most recent job and people had a different number of jobs in the past and I want to get the first one). I managed to get the last value per row with the code below:

            first_job <- function(x) tail(x[!is.na(x)], 1)

            first_job <- apply(data, 1, first_job)

            ...

            ANSWER

            Answered 2021-May-11 at 13:56

            You can get the value which is next to last non-NA value.

            Source https://stackoverflow.com/questions/67486393

            QUESTION

            Consul Service Mesh send traffic to URL outside the mesh
            Asked 2021-May-13 at 22:12

            I'm using Consul to create a service-mesh, it's all working well.

            I want to send traffic to an IP/host not managed by the mesh, which doesn't have a side car.

            Is this possible, I don't think it is?

            ...

            ANSWER

            Answered 2021-May-13 at 22:12

            Consul provides native support for connecting to egress services through proxies called terminating gateways. The destination service only needs to be registered into the service catalog, and the mesh configured to route connections to that service through the gateway.

            The Understand Terminating Gateways tutorial provides a bit more in-depth information on the supported deployment patterns. It also links to a subsequent tutorial, Connect External Services to Consul With Terminating Gateways, which walks through the process of configuring and connecting to external services from within the mesh.

            Source https://stackoverflow.com/questions/67518780

            Community Discussions, Code Snippets contain sources that include Stack Exchange Network

            Vulnerabilities

            No vulnerabilities reported

            Install consul

            You can download it from GitHub.
            On a UNIX-like operating system, using your system’s package manager is easiest. However, the packaged Ruby version may not be the newest one. There is also an installer for Windows. Managers help you to switch between multiple Ruby versions on your system. Installers can be used to install a specific or multiple Ruby versions. Please refer ruby-lang.org for more information.

            Support

            For any new features, suggestions and bugs create an issue on GitHub. If you have any questions check and ask questions on community page Stack Overflow .
            Find more information at:

            Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items

            Find more libraries
            CLONE
          • HTTPS

            https://github.com/sous-chefs/consul.git

          • CLI

            gh repo clone sous-chefs/consul

          • sshUrl

            git@github.com:sous-chefs/consul.git

          • Stay Updated

            Subscribe to our newsletter for trending solutions and developer bootcamps

            Agree to Sign up and Terms & Conditions

            Share this Page

            share link

            Consider Popular Configuration Management Libraries

            dotfiles

            by mathiasbynens

            consul

            by hashicorp

            viper

            by spf13

            eureka

            by Netflix

            confd

            by kelseyhightower

            Try Top Libraries by sous-chefs

            docker

            by sous-chefsRuby

            elasticsearch

            by sous-chefsRuby

            aws

            by sous-chefsRuby

            nginx

            by sous-chefsRuby

            rvm

            by sous-chefsRuby