Ansible - Failed to connect to the host via ssh(인프런 CI/CD 강의 에러)

2024. 3. 13. 15:04·🛠 DevOps & Tool/Linux

전말

Jenkins를 이용한 CI/CD Pipeline 구축 강의 중 섹션 4 - Ansible에서 Kubernetes 제어하기 과정 중에 오류가 생겼고 이틀 내내 찾아서 고쳤다.

강의 커뮤니티에도 윈도우를 사용하는 대부분의 수강생들이 겪는 에러인 것 같은데, 해결 방법이 없고 구글링해도 정보가 너무 없어서 포스팅하고자 한다.

 

이하 내 호스트 IP는 가상으로 192.168.1.11로 표기하겠다. (or 스티커로 가리기)

 


 

 

먼저 진행한 과정은 hosts 파일에 아래와 같이 입력하고

[ansible-server]
localhost

[kubernetes]
192.168.1.11

 

ansible로 ping 모듈을 테스트하는 것이었다.

# ansible -i /k8s/hosts kubernetes -m ping

 

첫 번째 난관 봉착!

Failed to connect to the host via ssh -  Permission denied (publickey,password,keyboard-interactive) 발생

윈도우는 리눅스와 다르게 winrm(Windows Remote Management)을 통해 ansible을 이용할 수 있다고 한다.

그래서 ping이 아니라 winrm을 사용해 win_ping모듈로 테스트를 해야 한다.

 

하나씩 해결해보자

 

1. OpenSSH 설치

 

2. ansible 설정 파일 적용 

 

파워셸에서 아래 명령어를 실행한다.

$url = "https://github.com/AlbanAndrieu/ansible-windows/blob/master/files/ConfigureRemotingForAnsible.ps1"
$file = "$env:temp\ConfigureRemotingForAnsible.ps1"
(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
powershell.exe -ExecutionPolicy ByPass -File $file

 

두 번째 난관 봉착!

해당 설정 파일이 제대로 적용이 안됨

 

C:\Users\박경현_인터넷망\AppData\Local\Temp 경로에 ConfigureRemotingForAnsible 파일이 있을 건데,

열어보니 해당 사이트 자체가 크롤링 된 것 같았다.

 

그래서 https://github.com/AlbanAndrieu/ansible-windows/blob/master/files/ConfigureRemotingForAnsible.ps1 이 파일을 그냥 다운로드 받아서 같은 경로에 넣어준 다음 아래 명령어로 스크립트 실행했다.

powershell.exe -ExecutionPolicy ByPass -File $file

 

적용됐다..! 

 

 

3. ansible-server 서버에서 hosts 파일 수정

현재 접속중인 윈도우 계정의 아이디와 패스워드를 기입하면 된다.

그룹 이름은 windows말고 다른 이름으로 작성해도 된다.

[ansible-server]
localhost

[windows]
192.168.1.11

[windows:vars]
ansible_password='윈도우접속패스워드'
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_user=윈도우접속아이디
ansible_port=5986

 

 

4. winrm 설치

ansible은 파이썬 기반이므로 파이썬을 먼저 설치하고 pip을 사용해 pywinrm 모듈을 설치한다.

# yum install python39
# pip install pywinrm

 

5. 다시 ping 테스트 해보기

# ansible -i hosts windows -m win_ping

 

보통은 여기서 성공할 것이다.... 

 

세 번째 난관 봉착!

'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256) 에러 발생..

 

구글링해도 깃허브 이슈에 1개 올라온 거밖에 없었고 그 사람도 윈도우 계정명이 영어가 아니라 생긴 문제 같았다.

[root@ea3a4e776da2 k8s]# ansible -i hosts windows -m win_ping
[WARNING]: Invalid characters were found in group names but not replaced, use -vvvv to see details
192.168.1.11 | UNREACHABLE! => {
    "changed": false,
    "msg": "ssl: 'latin-1' codec can't encode characters in position 0-2: ordinal not in range(256)",
    "unreachable": true
}

 

그래서 윈도우 계정명을 영어로 바꾸고 나니 드디어 성공했다..ㅠㅠ

 

 

 

참고

9. ansible | windows winrm을 이용한 ansible 사용

ssh-copy-id 에러 문의

저작자표시 비영리 (새창열림)

'🛠 DevOps & Tool > Linux' 카테고리의 다른 글

[CentOS 7] 아파치 시작 에러, Job for httpd.service failed because the control process exited with error code.  (1) 2022.06.29
[CentOS 7] mod_jk를 이용한 Apache-Wildfly 연동  (0) 2022.06.28
[CentOS 7] configure: error: C compiler cannot create executables  (0) 2022.06.27
'🛠 DevOps & Tool/Linux' 카테고리의 다른 글
  • [CentOS 7] 아파치 시작 에러, Job for httpd.service failed because the control process exited with error code.
  • [CentOS 7] mod_jk를 이용한 Apache-Wildfly 연동
  • [CentOS 7] configure: error: C compiler cannot create executables
현주먹
현주먹
대구 불주먹 출신 현주먹의 개발.log
  • 현주먹
    현주먹의 개발로그
    현주먹
  • 전체
    오늘
    어제
    • 전체글 (179)
      • 👶🏻 CS (15)
        • Operating System (7)
        • DB (5)
        • Data Structure (2)
        • Software Engineering (1)
      • 💻 Dev (54)
        • Java & OOP (24)
        • Spring (4)
        • DB&JPA (6)
        • Test Code (1)
        • JSP & Servlet (13)
        • Etc (6)
      • 💡 Algorithm (25)
        • 인프런 (9)
        • 백준 (16)
      • 🛠 DevOps & Tool (11)
        • Linux (4)
        • AWS (1)
        • Git (2)
        • Etc (4)
      • 📝 끄적끄적 (74)
        • 후기 및 회고 (11)
        • TDD, 클린 코드 with Java 17기 (3)
        • F-Lab (23)
        • 🖥️ 자바의 정석 (11)
        • 📖 Clean Code (3)
        • 항해99 코테 스터디 (11)
        • 📖 가상 면접 사례로 배우는 대규모 시스템 설계 .. (11)
  • 블로그 메뉴

    • 🐈‍⬛ GitHub
    • TIL repository
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    에프랩
    JPA
    자바의신절판
    객체지향
    jsp
    자바의정석
    오블완
    C
    ==와 equals()
    항해99
    코테스터디
    til
    F-Lab
    로또 미션
    99클럽
    코딩테스트준비
    개구리책
    jsp 2.3 웹 프로그래밍: 기초부터 중급까지
    개발자멘토링
    NextSTEP
    티스토리챌린지
    개발자취업
    f-lab 후기
    2025스프링캠프
    데브클럽
    TDD 클린 코드 with Java
    오라클
    인프런 특정문자뒤집기
    에프랩 후기
    백준
  • hELLO· Designed By정상우.v4.10.2
현주먹
Ansible - Failed to connect to the host via ssh(인프런 CI/CD 강의 에러)
상단으로

티스토리툴바