Как записать в файл ТОЧНЫЙ вывод из переменной .stdout - PullRequest
0 голосов
/ 10 марта 2020

Я пытаюсь написать некоторую автоматизацию, и одной из задач является получение сертификатов CA из нескольких разных мест и сохранение их в одном файле конфигурации. Этот файл конфигурации хранит сертификаты указанным c способом:

'-----BEGIN CERTIFICATE-----\nMIID1jCCAr6gAwIBAgICeh0wDQYJKoZIhvcNAQELBQAwgZ8xCzAJBgNVBAYTAi0t\nMRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK\nDBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV\nbml0MRAwDgYDVQQDDAdNRkYtMDI0MRswGQYJKoZIhvcNAQkBFgxyb290QE1GRi0w\nMjQwHhcNMjAwMjI2MTMzOTIzWhcNMjEwMjI1MTMzOTIzWjCBnzELMAkGA1UEBhMC\nLS0xEjAQBgNVBAgMCVNvbWVTdGF0ZTERMA8GA1UEBwwIU29tZUNpdHkxGTAXBgNV\nBAoMEFNvbWVPcmdhbml6YXRpb24xHzAdBgNVBAsMFlNvbWVPcmdhbml6YXRpb25h\nbFVuaXQxEDAOBgNVBAMMB01GRi0wMjQxGzAZBgkqhkiG9w0BCQEWDHJvb3RATUZG\nLTAyNDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK2YIL5Wx/eCgfhn\nWvM7yofnZknPTtTqr3ERtpzRwc6+1s1jAps8qxiJM8CSVJfv2gMQZCSFLA8xy928\nsllk7pzAaATRg6a6dzR3Z2kte3/9HR7gUKLqlaGvzoo1JZkO0zL72IJ4QrZJtWrm\nDJTToneFCnzFt3S9WOGvH0iuF4p45fpmqBvYjlQXjhNFJawxbiJyUQOI5Y/twI8u\nDdpaKFcToW4oKb+tWO49jjtPJh/zjNwhVtrOyD+EorSZ6h0qI8rRaHCdN0P3PDEr\n2cNH2Z0lT05A2FOCiZgnDkGdBPuIKzKvHqYuUl/XdtouHLoKDRINy7OP6DwU7MkM\n2VRQKakCAwEAAaMaMBgwCQYDVR0TBAIwADALBgNVHQ8EBAMCBeAwDQYJKoZIhvcN\nAQELBQADggEBACeWyKkWq5pVuoWQQXnFmVX9PekkPuYNomy8cuqLuVFcf97zxNjO\nTqeMcNpkByVUOCDa558U+GqEmP1sPDeL5V6YbTbaP/Mc9a4XERPkJTpJyn8oJDtf\n3jcO/iNyofAVgU0zJHQ+By9MxQE+jh0hVxyOcI/Bk23OWat0GaqRmI/wWZk2mhd7\nYkPhUIYHnCJaA1Vt78mEyf54srHpaDwVcY2YPDK3582qCK4J82T9llEVJYSf2Hp1\nWUn/QApilMqqLg701u0ySYAVYj2q/B7URW1nhP//7VMXvNL5ItLmXHXz40i/bnoa\nHukTJ+nesE0PAScSDtz20Bw98K7pQtVnb54=\n-----END CERTIFICATE-----\n

Все находится в одной строке с \ n для новой строки. Теперь у меня есть небольшая игра, которая в основном получает содержимое файла .crt и использует переменную для записи его в конфигурацию.

- name: Retrieve CA certificate
    shell: cat /etc/pki/tls/certs/localhost.crt
    register: ca_certificate

  - debug:
      msg: "CA is: {{ ca_certificate.stdout }}"

  - name: Adding agent configuration to global rules
    lineinfile:
      path: /root/test2
      line: '{{ ca_certificate.stdout }}'
      create: true

Теперь мой вывод из отладки показывает результат так, как я хочу, чтобы он был записан:

TASK [debug] ********************************************************************************************************************************************************************************************************************************
ok: [localhost] => {
    "msg": "CA is: -----BEGIN CERTIFICATE-----\nMIID0jCCArqgAwIBAgICAugwDQYJKoZIhvcNAQELBQAwgZ0xCzAJBgNVBAYTAi0t\nMRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK\nDBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV\nbml0MQ8wDQYDVQQDDAZpaC0yMDAxGjAYBgkqhkiG9w0BCQEWC3Jvb3RAaWgtMjAw\nMB4XDTIwMDMwMzE1MDgzNFoXDTIxMDMwMzE1MDgzNFowgZ0xCzAJBgNVBAYTAi0t\nMRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK\nDBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV\nbml0MQ8wDQYDVQQDDAZpaC0yMDAxGjAYBgkqhkiG9w0BCQEWC3Jvb3RAaWgtMjAw\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtGynZNa/HT/Mu3z1qiMf\nqDNAMeEGnwLEm+ih/fXlwqNAsNS3Ysnfn4t3vOGOOBbf4TpTNjM7YD6/sRXlMa7e\njxOsusUb+CJ0A/sJ0Ht5lUGUPHbTKdo+yLdCMLcUnRo8KmUsED44YRXiW6KqqNLs\neh8U4eYV5oTgC8GJUTuy9cJnvW9RqjB9hzD+d6gDmj9YF8/vsEcEdYz5RXpYCua7\n/WPool4nKN8vCb3aludNw8jCqPxGkKcA+Fk/BBbQ8bLGtWVw7EMpkhUZUr8tdWvm\nuG9cy2mxLoKV3sR4FnQfCCLaaJh7LLvzO8wj2C5WpuHhheKLkE+WDS1yUVSNlc+8\nmQIDAQABoxowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF\nAAOCAQEAlOaBcNMriDOp0Md0y6jnK7R+3FPOjv93Gjowx/Xu3873dXZte5Muuz1Z\nR5GJRDZAfipLhkrGb64/+7rGEo3wK+HQaWwAbZxvWk1bHnW5rY+alAXPQyGIcpha\nE1lSyQPUqyg5+i7pAaM94BVV4zggn+FA5FRN660Mk+abFktqwIoMDVkLb4jaq+hY\nD27BpWcWXVkXgY6GDaT2hryHgAaDrI5lK8JC3JrnlqBFclDeAShsae1GJbBtG96d\nG5kafNPDzbR7Eja/Vi5tebN6YCoNxt9PyIQ9cGY4QbuAVJeclR2RIUpw9d4pbTyT\nIpm048IqXTzyl8xH8r/pGHD18KtjqQ==\n-----END CERTIFICATE-----"
}

Но на самом деле он пишет в файлы следующим образом:

-----BEGIN CERTIFICATE-----
MIID0jCCArqgAwIBAgICAugwDQYJKoZIhvcNAQELBQAwgZ0xCzAJBgNVBAYTAi0t
MRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK
DBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV
bml0MQ8wDQYDVQQDDAZpaC0yMDAxGjAYBgkqhkiG9w0BCQEWC3Jvb3RAaWgtMjAw
MB4XDTIwMDMwMzE1MDgzNFoXDTIxMDMwMzE1MDgzNFowgZ0xCzAJBgNVBAYTAi0t
MRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK
DBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV
bml0MQ8wDQYDVQQDDAZpaC0yMDAxGjAYBgkqhkiG9w0BCQEWC3Jvb3RAaWgtMjAw
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtGynZNa/HT/Mu3z1qiMf
qDNAMeEGnwLEm+ih/fXlwqNAsNS3Ysnfn4t3vOGOOBbf4TpTNjM7YD6/sRXlMa7e
jxOsusUb+CJ0A/sJ0Ht5lUGUPHbTKdo+yLdCMLcUnRo8KmUsED44YRXiW6KqqNLs
eh8U4eYV5oTgC8GJUTuy9cJnvW9RqjB9hzD+d6gDmj9YF8/vsEcEdYz5RXpYCua7
/WPool4nKN8vCb3aludNw8jCqPxGkKcA+Fk/BBbQ8bLGtWVw7EMpkhUZUr8tdWvm
uG9cy2mxLoKV3sR4FnQfCCLaaJBmLLvzO8wj2C5WpuHhheKLkE+WDS1yUVSNlc+8
mQIDAQABoxowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF
AAOCAQEAlOaBcNMriDOp0Md0y6jnK7R+3FPOjv93Gjowx/Xu3873dXZte5Muuz1Z
R5GJRDZAfipLhkrGb64/+7rGEo3wK+HQaWwA71xvWk1bHnW5rY+alAXPQyGIcpha
E1lSyQPUqyg5+i7pAaM94BVV4zggn+FA5FRN660Mk+abFktqwIoMDVkLb4jaq+hY
D27BpWcWXVkXgY6GDaT2hryHgAaDrI5lK8JC3JrnlqBFclDeAShsae1GJbBtG96d
G5kafNPDzbR7Eja/Vi5tebN6YCoNxt9PyIQ9cGY4QbuAVJeclR2RIUpw9d4pbTyT
Ipm048IqXTzyl8xH8r/pGHD18KtjqQ==
-----END CERTIFICATE-----

Может кто-нибудь сказать мне, можно ли записать в файл EXACT вывод из stdout, который я вижу из debug? Вся помощь очень ценится.

1 Ответ

0 голосов
/ 10 марта 2020

Вам нужно использовать stdout_lines

- debug:
      msg: "CA is: {{ ca_certificate.stdout_lines }}"

Я только что проверил это, пожалуйста, смотрите вывод ниже:

ok: [localhost] => {
    "msg": [
        "-----BEGIN CERTIFICATE-----",
        "MIID0jCCArqgAwIBAgICAugwDQYJKoZIhvcNAQELBQAwgZ0xCzAJBgNVBAYTAi0t",
        "MRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK",
        "DBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV",
        "bml0MQ8wDQYDVQQDDAZpaC0yMDAxGjAYBgkqhkiG9w0BCQEWC3Jvb3RAaWgtMjAw",
        "MB4XDTIwMDMwMzE1MDgzNFoXDTIxMDMwMzE1MDgzNFowgZ0xCzAJBgNVBAYTAi0t",
        "MRIwEAYDVQQIDAlTb21lU3RhdGUxETAPBgNVBAcMCFNvbWVDaXR5MRkwFwYDVQQK",
        "DBBTb21lT3JnYW5pemF0aW9uMR8wHQYDVQQLDBZTb21lT3JnYW5pemF0aW9uYWxV",
        "bml0MQ8wDQYDVQQDDAZpaC0yMDAxGjAYBgkqhkiG9w0BCQEWC3Jvb3RAaWgtMjAw",
        "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtGynZNa/HT/Mu3z1qiMf",
        "qDNAMeEGnwLEm+ih/fXlwqNAsNS3Ysnfn4t3vOGOOBbf4TpTNjM7YD6/sRXlMa7e",
        "jxOsusUb+CJ0A/sJ0Ht5lUGUPHbTKdo+yLdCMLcUnRo8KmUsED44YRXiW6KqqNLs",
        "eh8U4eYV5oTgC8GJUTuy9cJnvW9RqjB9hzD+d6gDmj9YF8/vsEcEdYz5RXpYCua7",
        "/WPool4nKN8vCb3aludNw8jCqPxGkKcA+Fk/BBbQ8bLGtWVw7EMpkhUZUr8tdWvm",
        "uG9cy2mxLoKV3sR4FnQfCCLaaJBmLLvzO8wj2C5WpuHhheKLkE+WDS1yUVSNlc+8",
        "mQIDAQABoxowGDAJBgNVHRMEAjAAMAsGA1UdDwQEAwIF4DANBgkqhkiG9w0BAQsF",
        "AAOCAQEAlOaBcNMriDOp0Md0y6jnK7R+3FPOjv93Gjowx/Xu3873dXZte5Muuz1Z",
        "R5GJRDZAfipLhkrGb64/+7rGEo3wK+HQaWwA71xvWk1bHnW5rY+alAXPQyGIcpha",
        "E1lSyQPUqyg5+i7pAaM94BVV4zggn+FA5FRN660Mk+abFktqwIoMDVkLb4jaq+hY",
        "D27BpWcWXVkXgY6GDaT2hryHgAaDrI5lK8JC3JrnlqBFclDeAShsae1GJbBtG96d",
        "G5kafNPDzbR7Eja/Vi5tebN6YCoNxt9PyIQ9cGY4QbuAVJeclR2RIUpw9d4pbTyT",
        "Ipm048IqXTzyl8xH8r/pGHD18KtjqQ==",
        "-----END CERTIFICATE-----"
    ]
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...