Git, вызываемый AWX, игнорирует установленный вручную корневой CA

AWX установлен на машине CentOS. Отдельная машина ( gitlab.techraf ) обслуживает веб-интерфейс GitLab через HTTPS с сертификатом, подписанным частным центром сертификации.

Сюжетная линия:

  1. В «свежей» системе я запускаю команду:

     / usr / bin / git clone --origin origin https: //gitlab.techraf/techraf/project.git / tmp / project  

    AWX установлен на машине CentOS. Отдельная машина ( gitlab.techraf ) обслуживает веб-интерфейс GitLab через HTTPS с сертификатом, подписанным частным центром сертификации.

    Сюжетная линия:

    1. В «свежей» системе я запускаю команду:

       / usr / bin / git clone --origin origin https: //gitlab.techraf/techraf/project.git / tmp / project  

      AWX установлен на машине CentOS. Отдельная машина ( gitlab.techraf ) обслуживает веб-интерфейс GitLab через HTTPS с сертификатом, подписанным частным центром сертификации.

      Сюжетная линия:

      1. В «свежей» системе я запускаю команду:

         / usr / bin / git clone --origin origin https: //gitlab.techraf/techraf/project.git / tmp / project
        

        и получить (ожидается):

        фатальный: невозможно получить доступ ' https: //gitlab.techraf/techraf/project.git/ ': издатель сертификата партнера не распознан.

      2. Я устанавливаю сертификат корневого ЦС на машину AWX:

         update-ca-trust force-enable
        curl https: //certificate.source/certificates/techrafCA.pem> /etc/pki/ca-trust/source/anchors/techrafCA.pem
        update-ca-trust экстракт
        
      3. Я повторяю вышеупомянутый git clone , на этот раз получаю правильный ответ:

        Клонирование в '/tmp/project'...
        удаленный: Подсчет объектов: 3, готово.
        удаленный: всего 3 (дельта 0), повторно используется 0 (дельта 0)
        Распаковка объектов: 100% (3/3), выполнено.

        В качестве проверки работоспособности я запустил git clone , используя разные учетные записи пользователей - никаких проблем после установки сертификата корневого ЦС в пункте 2 - корневой ЦС кажется для установки в системе. curl также принимает сертификат gitlab.techraf .

      4. (проблема) Я определяю проект в интерфейсе AWX и пытаюсь синхронизировать его из GitLab, однако я get:

        ЗАДАЧА [обновить проект с помощью git]
        ***********************************************
        фатальный: [localhost]: НЕ ПРОШЛО! => {"изменено": false, "cmd": " / usr / bin / git clone --origin origin https: //gitlab.techraf/techraf/project.git / var / lib / awx / projects / _6__project "," failed ": true," msg ":" fatal: невозможно получить доступ " https: //gitlab.techraf/techraf/project.git/ ': Издатель сертификата партнера не является распознано. "," rc ": 128," stderr ":" fatal: недоступен доступ " https: //gitlab.techraf/techraf/project.git/ ': издатель сертификата партнера не распознан. \ n "," stderr_lines ": [" fatal: недоступен ' https: //gitlab.techraf/techraf/project.git/ ': издатель сертификата партнера не распознан. "]," stdout ":" Клонирование в '/var/lib/awx/projects/_6__project'...\n "," stdout_lines ": [" Клонирование в' /var/lib/awx/projects/_6__project'..." visible}

        В качестве проверки работоспособности я пробовал использовать проект из GitHub, и AWX получает его правильно.

        В качестве еще одной проверки работоспособности я выполнил ansible localhost -m command -a "/ usr / bin / git clone --origin origin https: //gitlab.techraf/techraf/project.git / tmp / project2 , а также с другого компьютера, чтобы неинтерактивные сеансы оболочки работали одинаково. В любом случае сертификат был принят.


      Что может быть причиной того, что git (вызывается AWX / Ansible) не использует установленный techrafCA. ip scp server enable При выполнении вручную с помощью шпатлевки это работает нормально. Я пытаюсь сделать то же самое с помощью plink, но ...

      Я хотел бы выполнить набор команд на устройстве cisco:

      conf terminal
      ip scp server enable
      

      При выполнении вручную с помощью putty это работает нормально. Я пытаюсь сделать то же самое с помощью plink, но безуспешно.

      Попытка 1

      plink -ssh user@192.168.1.1 "conf terminal; ip scp server enable"
      

      Попытка 2

      plink -ssh user@192.168.1.1 -m script.sh
      

      Похоже, что после терминала настройки необходимо послать нажатие клавиши «Enter». команда. Другое . использовали VBScript для отправки нажатия клавиши. Можно ли сделать это изначально в plink?

0
задан 9 October 2017 в 06:11
2 ответа

попробуйте использовать '<' вместо параметра -m.

Последняя команда будет выглядеть так

plink -ssh user@192.168.1.1 -pw password_something < do-stuff.txt  > output.txt

В этом случае ваш do-stuff.txt может содержать несколько строк и лент новостей (Введите).

1
ответ дан 4 December 2019 в 16:07

чтобы избежать нажатия клавиши «Ввод», вы можете добавить параметр -batch:

plink -ssh (скрытый) -batch «терминал conf; ip scp server enable»

1
ответ дан 5 September 2020 в 16:34

Теги

Похожие вопросы