title: ansible vault encrypt string
body: <p>I'm trying to encrypt some password but would like to encrypt just part of the string instead of the whole file. So there is a command ansible-vault encrypt_string which provide you an encrypted output however when I'm adding it to my .yaml playbook it failed to decrypt.</p>
  
  <p>command used for an encrypitng simple password:</p>
  
  <blockquote>
    <p>ansible-vault encrypt_string 'Test123!' --name 'ansible_password'</p>
  </blockquote>
  
  <p>result:</p>
  
  <blockquote>
    <p>ansible_password: !vault |
              $ANSIBLE_VAULT;1.1;AES256 30333733643939646130396638646138636338636162316536313236666334656338306634353434
    3132326265313639623039653261336265343733383730340a663565323932636138633365386332
    36363534326263326633623238653464376637646632363839313464333830363436643561626534
    6338613837393539350a383962663766373466376138376666393639373631313861663866333663
    6137 Encryption successful</p>
  </blockquote>
  
  <p>^ </p>
  
  <blockquote>
    <p>formatting is a little bit clunky with long strings</p>
  </blockquote>
  
  <p>So I'm trying to put this value into my playbook like this:</p>
  
  <pre><code>---
  - name: Copy needed files to target machine
    hosts: prod
    vars:
            ansible_user: test_admin
            ansible_password: !vault $ANSIBLE_VAULT;1.1;AES256;303337336439396461303966386461386363386361623165363132366663346563383066343534343132326265313639623039653261336265343733383730340a663565323932636138633365386332363635343262633266336232386534643766376466323638393134643338303634366435616265346338613837393539350a3839626637663734663761383766663936393736313138616638663336636137
            ansible_connection: winrm
            ansible_winrm_transport: credssp
            ansible_winrm_server_cert_validation: ignore
  
  
    tasks:
    - name: Copy test
      win_copy:
         src: /etc/winmachines/hosts
         dest: C:\test\
  </code></pre>
  
  <p>Then I want to execute playbook with command:</p>
  
  <blockquote>
    <p>ansible-playbook copy.yaml -i hosts.ini</p>
  </blockquote>
  
  <p>result:</p>
  
  <pre><code>PLAY [Copy needed files to target machine] ********************************************************************************************************
  
  TASK [Gathering Facts] ****************************************************************************************************************************
  fatal: [10.5.17.5]: FAILED! =&gt; {"msg": "Attempting to decrypt but no vault secrets found"}
          to retry, use: --limit @deleted
  
  PLAY RECAP ****************************************************************************************************************************************
  10.5.17.5                  : ok=0    changed=0    unreachable=0    failed=1
  </code></pre>
  
  <p>when i run playbook with parameter --ask-vault-password:</p>
  
  <blockquote>
    <p>ansible-playbook copy.yaml -i hosts.ini --ask-vault-pass</p>
  </blockquote>
  
  <pre><code>PLAY [Copy needed files to target machine] ********************************************************************************************************
  
  TASK [Gathering Facts] ****************************************************************************************************************************
   [WARNING]: There was a vault format error: Vault vaulttext format error: need more than 1 value to unpack
  
  fatal: [10.5.17.5]: FAILED! =&gt; {"msg": "Vault vaulttext format error: need more than 1 value to unpack"}
          to retry, use: --limit @deleted
  
  PLAY RECAP ****************************************************************************************************************************************
  10.5.17.5                  : ok=0    changed=0    unreachable=0    failed=1
  </code></pre>
  
  <p>I have tried to put the output from encrypting in various ways but every time it fails due to this problem or syntax problem.</p>
  
  <p>When Put in way delivered from the output I'm getting Syntax Error like this:</p>
  
  <pre><code>ERROR! Syntax Error while loading YAML.
    could not find expected ':'
  
  The error appears to have been in : line 8, column 11, but may
  be elsewhere in the file depending on the exact syntax problem.
  
  The offending line appears to be:
  
            $ANSIBLE_VAULT;1.1;AES256
            34323264326266303364656561616663306566356636616238623931613032343131643839336338
            ^ here
  </code></pre>
  
  <p>When everything is in the same line removed "|" got this error:</p>
  
  <pre><code>TASK [Gathering Facts] ****************************************************************************************************************************
  fatal: [10.5.17.5]: FAILED! =&gt; {"msg": "AES256 343232643262663033646565616166633065663566366162386239316130323431316438393363383331346231343361386432666461646639386135666335380a373862336531613034393262653432313038303432636536313139353932356637343139393938666536383061383233613136643063353761386339323562640a3963306632393865613237666364386566623938356465336363613163646338 cipher could not be found"}
  </code></pre>
  
  <p>Any ideas?</p>