Ansible is easy to use IT automation and DevOps tool. One can use it for automation tasks. You can easily configure and manage FreeBSD server using Ansible. Ansible works from a control workstation powered by macOS, Linux or *BSD family of operating systems.
Enable OpenSSH server on FreeBSD box
Verify it with the following command:
% service -e | grep sshdxyz
If OpenSSH server not enabled on FreeBSD box, type the following command to activate at boot time and start it:
# echo 'sshd_enable="YES"' >> /etc/rc.conf
# service sshd start
Installed sudo on FreeBSD server
Run the following command:
% type sudo
If the sudo command not found, install it using the following pkg command:
# pkg install sudo
Allow members of group wheel to execute any command:
# echo '%wheel ALL=(ALL) ALL' >/usr/local/etc/sudoers.d/allow-wheel-user-login
Make sure regular user is part of the wheel group
Use the id command to find user’s group membership:
% id xyz
uid=1001(xyz) gid=1001(xyz) groups=1001(xyz)
As you can see "xyz" user is not part of the wheel group. Add user "xyz" to the wheel group using pw command
# pw usermod -n xyz -G wheel
# id xyz
uid=1001(xyz) gid=1001(xyz) groups=1001(xyz),0(wheel)
Install Python 2.x or Python 3.x
The final requirement is to install Python on FreeBSD box.
# pkg install python3.6
OR
# pkg install python2.7
Please note down the path for Python:
% type python2.7
python2.7 is /usr/local/bin/python2.7
% type python3.6
python3.6 is /usr/local/bin/python3.6
FreeBSD server to be managed by Ansible tool
First, create an inventory file as follows on a control machine:
$ vi hosts
Add hostnames/IP address of all remote FreeBSD/Linux servers:
[myhosts]
152.168.2.100
152.108.2.101
152.108.2.102
OR
[myhosts]
freebsd11-rootadminz
freebsd-jail-1
Test FreeBSD Ansible setup
Let us run the uptime command and hostname command on above two hosts i.e. myhosts group as user xyz:
$ ansible -u xyz -i hosts -m raw -a 'uptime' myhosts
$ ansible -u xyz -i hosts -m raw -a 'hostname' myhosts
That's it !!