LINUXMAKER, OpenSource, Tutorials

DevOps with GIT, Jenkins, Puppet, Chef, Ansible

As a developer and company, you benefit from our experience and knowledge of DevOps, continuous delivery. We advise you on the implementation of your software project and bring the hand-ons with you to use the right tools for you.

  • You lower your costs if you use existing knowledge instead of building it up first.

  • You benefit from our experience at GIT, Jenkins, Puppet, Chef, Ansible and are guided through the process

    .

The term "DevOps" means a process improvement approach that is used primarily in system administration and software development. DevOps is a so-called key word, which is made up of the words "Development" and "IT Operations".
The aim of this approach is to ensure more efficient and effective collaboration in the areas of development, IT operations and quality assurance. The optimized cooperation between the various sub-areas is intended to improve the speed of software development and the cooperation between the individual teams.
For this purpose, IT-LINUXMAKER uses special incentives, tools and processes.

GIT

GIT is a widely used open source tool for distributed version control of software. It is used both in companies and by private developers worldwide and works together with a wide variety of platforms and IDEs.
Version control makes it easy to add changes independently from anywhere in the project, to record and track these changes, and to access older versions of the project at a later time. GIT is platform independent and can therefore be used in almost any environment.
Where other version control systems rely on a centrally stored database, GIT relies on a distributed system. This means that each member of a project team has its own copy of the project database - the repository. In theory, it is possible with GIT to work without a central database.
Developers mostly program on their local copy of the repository and have the option of exchanging their changes with everyone involved. Distributing the repository also reduces the risk of data being lost: Since many people have the complete history and the current status of the project as a local copy at the same time, a server failure can cause practically no damage.
Nevertheless, there is the option to set up a central contact point ("Blessed Repository"), which is maintained by authorized team members and the team z. B. serves as an official reference. Anyone who wants to work on the project will get a copy of this version. Changes are then not generally distributed, but passed on to the responsible team member for review and integration.
GIT also offers the option of dividing a project into different branches or branches or forks. B. separate versions and develop new or experimental features parallel to the main branch. Changes that are to be published for the end user can then be merged again with the corresponding project version.
GIT is designed to ensure that teams regularly use branches and merges to build up a clear history of the project. GIT has internal tools that can visualize the branches and merges of a project - so each team member gets a clear overview of the development of the project.

Jenkins

Jenkins is a so-called Continuous Integration System (CI system) programmed in Java that runs in every modern servlet container, such as Tomcat or Jboss. However, the tool also comes with its own minimal container, Winstone. So there is no need to install an additional web container if it does not already exist. Jenkins supports a whole range of build tools and integrates seamlessly into version control systems such as Subversion. Thanks to the modular structure of Jenkins, its range of functions can be greatly expanded. For example, there are plugins for integrating additional build tools or version control systems.
By regularly querying the configured VCS, Jenkins can quickly determine whether new code has been checked into the repository. If this is the case, it is checked out and Jenkins calls the configured build tool to finally translate the new code. In addition, Jenkins is of course also able to apply any other actions to the new code. This includes, for example, building a new RPM package based on the new program code.

Puppet

Puppet is an open source project with enterprise support. The admin tool allows the automated configuration of computers and servers and the services installed on them. The field of application ranges from single servers to large computer network systems.
When configuring a server, developers and administrators use special configuration managers. Ideally, many tasks can be automated with it.
Puppet is based on the client-server principle of operation, the "PuppetMaster" is resident on the server. It maintains all configurations of the computers active in the network. The current actual state of the system is determined and compared with the target state stored for the configuration. The required operations are calculated and carried out based on the difference determined.
In principle, developers and administrators are able to use Puppet to centrally manage all computers integrated in a network. Conventionally configured services can be operated in addition to the processes stored with Puppet. This is possible because all files and configurations that are not described in the PuppetMaster are not regulated from there.
A system administrator can use Puppet to centrally manage the configuration of computers connected to his network. To do this, he declaratively declares the desired status of a subsystem via "Puppet Manifests", which Puppet then implements during the process. Declarations can be made conditioned. In particular, the additional program facter belonging to Puppet can be used to determine system properties, for example the processor architecture, the operating system, or whether the Puppet instance is running on a virtual machine. Puppet is suitable for both individual computers and large computer networks. Many organizations, companies, schools and universities use Puppet to manage the configuration of their servers.

Chef

Chef is an open source software for configuration management for cloud computing that automates relevant server administration processes. This allows configurations to be tested, versioned and replicated.
Developers and / or administrators use so-called recipes to determine how server applications and accompanying utilities are to be managed and configured. In the interests of simple administration and clarity, the recipes created are summarized in a cookbook. In this way, instructions and status descriptions are stored, for example
- packages to be installed,
- services to be performed or also
- files to be executed.
The order of the work steps provided by the system administrator is specified in the cookbook. They are processed analogously. The Chef configuration management tool always ensures that all resources are properly configured. If resources are not in the required status, Chef intervenes to regulate them. Chef is operated in client / server mode or alternatively in the form of an independent configuration called "Chef Solo".

Ansible

Ansible is an open source automation tool for orchestration and general configuration and administration of computers. It combines software distribution, ad hoc command execution and configuration management. The management of network computers is done via SSH and does not require any additional software on the system to be managed. Modules use JSON for output and can be written in any programming language.
A special feature of Ansible is that the open source software can work with minimal requirements: the managing devices only need OpenSSH and Python. Nevertheless, the tool masters all important techniques to automate configuration, administration and orchestration.
At the same time, it can be operated via the relatively simple language YAML, which further lowers the entry hurdle. Ansible is used by a wide variety of companies and institutions around the world, from data centers to universities.
Another special feature of Ansible is that no agent needs to be installed on the target system when working remotely. With other configuration managers, agent software is often required to perform the desired tasks. This can lead to errors or security problems. Ansible works without detours or aids and can nip these concerns in the bud.
Automated configuration management with Ansible works by describing the desired state of the host or system in a so-called playbook. These can be basic settings, but also the complete setup of a new system including the installation of certain software.
The tool is used to manage networks up to the automated setup of new clients. If necessary, individual commands can of course also be issued via the command line. Ansible uses three basic resources for automated work: modules, inventory and playbooks.


IT service and IT consulting

The digitization of business life, essential production processes and private life is in full swing. At the same time, threats from server failures, viruses and cybercrime are increasing. The whole thing is reinforced by neglecting IT security both in the private sphere and in the business world. Protective mechanisms that are really necessary are usually only considered when the damage has already occurred and the restoration of the IT infrastructure has caused enormous costs.
Linux offers you a secure basis in your IT infrastructure right from the start. On the one hand, because it has always been conceived as an operating system geared towards network operation. On the other hand, because the free availability of the source code makes the possibility of defective or misused functions almost impossible. In addition, “Open Source” has always meant permanent improvement by innovative specialists from all over the world. In the meantime, more and more users trust Linux, which among other things provides the kernel for the numerous Android installations, including companies and institutions such as Siemens, BMW, Lufthansa, Deutsche Post AG, Greenpeace and state institutions including the Federal Commissioner for Data Protection.
You are a company, a medium-sized company, a craft company, a sole trader with the appropriate IT infrastructure and you want to fully satisfy your customers with your products. Or you are a private individual with corresponding support requests. Your IT infrastructure should work reliably around the clock. As an expert in this field, IT-LINUXMAKER can protect your information effectively and quickly. With the services of IT-LINUXMAKER you secure your competitive advantage through the stability of your IT infrastructure and your data.

The support contracts from IT-LINUXMAKER are the ideal plus for your IT or development department. IT-LINUXMAKER supports you in all situations related to Linux with administration, monitoring, configuration, troubleshooting and script programming. Where your IT infrastructure is located, how large it is or how many users work in it does not matter for IT-LINUXMAKER.

Checklists - safe digital work

Since the beginning of the corona pandemic, many companies have also been organizing their work via home office regulations. The tips from IT-LINUXMAKER in a practical checklist format show what needs to be considered.

You can find all checklists for safe digital work here:

Secure passwords with the password card

Generate secure passwords of any length with the passwort card. You can check it out here.

 

Fee

Our fees depend on the service/product and the scope. Therefore, we can only state our fees in an offer if we already know your request.

 

Consultation request