I'm trying to read the database password on a remote host from the file /etc/mysql/debian.cnf
. Format of the file is below. Is there a way to parse out the password
field so I can drop a mysql user via Ansible?
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = root
password = 5unnyv4l3
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = root
password = 5unnyv4l3
socket = /var/run/mysqld/mysqld.sock
basedir = /usr
It looks like the 'slurp' module will work for your requirements: https://docs.ansible.com/ansible/latest/modules/slurp_module.html
Edited after testing and fixing.
If the file is local to the ansible system you can use the ini lookup which will read in values from a ini style file. If your file is remote you can use fetch/slurp to pull a copy to the local system.
I would guess the lookup would be something like
You can use the command or shell module and do it with awk/sed, someting like:
In this case to handle a comment in the same line you can do