Things become very lengthy when we choose any configuration management tool for managing multiple servers. Just imagine, what if we get something which allows us to start automating tasks just after installation?
While hunting for a way to automate all administrative tasks and for deployments with less efforts and time, I came across Fabric. In addition to my requirements, I got local automation, which is also one of the features of Fabric. I tried it out and its awesome! In this blog article, I will be covering the following:
- What Fabric is?
- What are its features?
- What is it best suitable for?
- What are its advantages?
- What are its disadvantages?
What Fabric is?
Fabric is an automation tool which allows local as well as remote automation and deployments. Basically, Fabric is a tool built on python library, used to interact with SSH and automate tasks starting from general system administration to application deployment. To take advantage of this brilliant tool to automate tasks or deploy an application, we must meet very basic requirements such as Python, setuptools, Python Paramiko SSH library, which is now-a-days shipped with the OS itself. Fabric scripts run using Fab tool which comes along with Fabric. These are basic Python scripts i.e. Fabfiles which needs to be programmed with Python. You don’t need to be an expert in Python or any other programming language. Once you start and go through some Fabric files, you will get to know its use with ease.
What are its features?
- Seamless integration with SSH
- Streamlining almost anything using simple scripts (fabfile.py)
- Building, maintaining and monitoring the severs with ease
- Allows application deployment regardless of whether it’s a website, an API or a sever
- You don’t need to be expert in programming, basic understanding of Python is sufficient
- It allows parallel remote executions
- High operational speed
What is it best suitable for?
- Starting with automation of deployments
- Best when the environment is having at least a part in Python
- As a wrapper for Ansible, specific tasks are available to lessen the complexity of Ansible and execution time
- Scenarios where execution time is a constrain for routine automation processes
- Scenarios where execution of command line statements is sufficient and there is no need of modules for performing complex tasks
What are its advantages?
- Less execution time as compared to other automation tools
- Application written in any language can be deployed
- Independent of system architecture
- Easy to learn and understand
- Seamlessly integrated with SSH for great efficiency in script-based automation
What are its disadvantages?
- Not well suited for Continuous Integration and Continuous Delivery (CI / CD), since it uses push model
- Single point of failure setup
- At least a little Python is required in the environment, since it requires Python to run
- No powerful or complex features are available
Stay tuned to learn more about Fabric in my next blog article – Fabric – Dive into Usage.
If you are new to automation, then you would like to check out our course on Fundamentals for DevOps.
Please feel free to share your views in the comments section below.