Useful Options of fabric:
It has many useful options to perform different types of tasks. Some mostly used options of this tool have described below.
Fabric Option | Description |
–fabfile=PATH | It is used to define the Python module file. |
–user=USER | It is used to define the username to connect with the host. |
–password=PASSWORD | It is used to define the password to connect with the host. |
–display=NAME | It is used to display detailed information about the fab command. |
–list-format=FORMAT | It is used to set the specific format option. |
–config=PATH | It is used to define the location of the config file. |
–colorize-errors | It is used to display the error with the color. |
–version | It is used to display the version of the fab command. |
–help | It is used to display detailed information about the available options of the fab command. |
Install fabric in Python3:
Run the following command to install the fabric command in Python3.
Example-1: Use of fabric command without ssh
A python file named fabfile.py is required by the fab command to do some specific tasks automatically. Create the fabfile.py file with the following script. message() function has defined in the script that will take the name from the user and print the welcome message. This function name is required to use with the fab command to execute the script.
fabfile.py
def message():
# Take a name from the user
name = input('Enter your name : ')
# Print the name with greeting
print('Hello, %s' %name)
Run the following command to execute the script of the fabfile.py.
The following output will appear after giving the value of the name.
Installing SSH on Ubuntu:
SSH is used to interact with the remote server, and the fabric command can be executed by connecting with the remote server through SSH. It is not installed on Ubuntu by default. openssh-server will require to install for performing SSH activities from the local computer. After installing this package, the fab command can perform some tasks remotely by using an SSH connection.
Run the following commands from the terminal to update the system and install the openssh-server.
$ sudo apt install openssh-server
Run the following command to check the ssh command is working properly or not.
The following output will appear after typing ‘yes‘ if the ssh command is working properly.
Example-2: Start, Stop and check the status of Apache Server using fabric
Create or modify the fabfile.py with the following script. The run module has been imported in the script to run the commands to start, stop, and check the apache server’s status. env module has been imported to set the hosts value. start_apache() function has been defined to start the apache server. stop_apache() function has been defined to stop the apache server. status_apache() function has been defined to check the current status of the apache server. A valid username and password have to provide for ssh connection when executing the fab command.
fabfile.py
from fabric.api import run, env
# Set the hosts name
env.hosts = '127.0.0.1'
# Define function to start Apache server
def start_apache():
run('sudo systemctl start apache2')
print('Apache server is started.')
# Define function to stop Apache server
def stop_apache():
run('sudo systemctl stop apache2')
print('Apache server is stopped.')
# Define function to check the status of Apache server
def status_apache():
run('sudo systemctl status apache2')
Run the following command from the terminal to start the apache server with the fab command.
Run the following command from the terminal to check the apache server’s status with the fab command.
Run the following command from the terminal to stop the apache server with the fab command.
Example-3: Perform multiple tasks using fabric
Create or modify the fabfile.py with the following script. The run module has been imported into the script to get the processor type and the disk’s used space. env module has been imported to set the hosts, user, and password values for the SSH connection. multi_task() function has defined to do the two tasks together.
fabfile.py
from fabric.api import run, env
# Set the host IP
env.hosts = '127.0.0.1'
# Set the username
env.user = "fahmida"
# Set the username
env.password = "12345"
# Define function to run multiple tasks
def multi_tasks():
# Print the processor type
run('uname -p')
# Print the used space of the disk in a human-readable format
run('sudo df -h')
Run the following command from the terminal to print the processor type and the detailed information about the disk space.
If the given username and password in the script are valid, then the following output will be appeared after executing the above command.
Conclusion:
The regular tasks can be done automatically by using the fabric module of Python. The Linux users can easily perform many administrative-related tasks by executing a simple fab command after writing the script to execute the required commands in the fabfile.py file. The fabric module uses have been explained in this tutorial by using three simple examples to help the readers know the fabric module’s function.