As much as I like them I would recommend against grep/cat/awk in this
case as it makes things very fragile.
Instead try to use something that PHP and ansible can both use - such as JSON.

For example my WordPress has:

define('DB_PASSWORD',
'(U>Trob!t]J=-APTjNr[b9()yL#-95r8[3s4MpM~S0dI=`Pb7td9$):M{kENu|i323');

This playbook then gets that password:


  tasks:
    - name: JSON encode constants
      command: php -r 'require_once("wp-config.php");
        echo json_encode(get_defined_constants(true)["user"]);'
      register: php_out

    - set_fact:
        php_constants: "{{ php_out.stdout | from_json }}"

    - debug: var=php_constants.DB_PASSWORD



TASK [debug] 
***************************************************************************************************************************************
ok: [wp] =>
  php_constants.DB_PASSWORD:
(U>Trob!t]J=-APTjNr[b9()yL#-95r8[3s4MpM~S0dI=`Pb7td9$):M{kENu|i323



DIck

On Wed, 1 Apr 2020 at 19:14, Mark T. <[email protected]> wrote:
>
> Hello,
>
> - name: Determining Source Account DB Password
>     shell: cat wp-config.php | grep DB_PASSWORD | awk -F"['']" '{print $4}'
>     register: wp_dbpw_source
>
> If the password contains a backslash, the output doubles the number of 
> backslashes.
>
> abc\*# becomes abc\\*#
>
> I'm aware extra escape characters are only for display purposes, and not 
> actually sent to the command.
>
> But the distorted password output prevents the script from accessing the 
> database. When I remove the backslash from the password, the script works 
> again.
>
> Is there a way to output a shell command using grep, cat or awk that doesn't 
> cause this distortion?
>
> Thanks,
>
> Mark T.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Ansible Project" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to [email protected].
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/ansible-project/acbd9abb-8f6d-4847-8d46-7d87fa1d15b6%40googlegroups.com.



-- 
Dick Visser
Trust & Identity Service Operations Manager
GÉANT

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/CAL8fbwOHjT4A6Ru3V6mb4D4hb5%3DvL1PHG%2B3T1a4mTU3nt9boRw%40mail.gmail.com.

Reply via email to