인프런 커뮤니티 질문&답변

sm kim님의 프로필 이미지
sm kim

작성한 질문수

Jenkins를 이용한 CI/CD Pipeline 구축

Ansible Playbook 사용하기

[ansible-playbook] checksum 파일을 찾을수 없다고 나옵니다.

작성

·

611

0

안녕하세요.

강사님 강의 잘 듣고 있습니다.

그런데 아래와 같이 에러가 발생하여 문의 드립니다.

Ansible Playbook 사용하기 챕터에서

Tomcat 파일 다운로드 받는 부분에서 아래와 같이

Checksum 파일을 찾을수 없다는 에러가 발생하였습니다.

톰캣 홈페이지에서 URL 찾아서 넣었는데도 해당 에러가 발생하네요.

답변 3

0

window 환경에서 도커 띄우고 playbook-sample2-linux.yml 부분이 잘 실행이 안되어서요 ㅠㅠ 

그리고 get_url 모듈 사용 할때 ssl 에러가 나서 

일단 저는 실습은 아래 코드로 실행 시켜 성공 했습니다. 

---

- name: Download Tomcat9 from tomcat.apache.org

  hosts: devops

  tasks:

   - name: Create a Directory /opt/tomcat9

     file:

       path: /opt/tomcat9

       state: directory

       mode: 0755

   - name: Download Tomcat using get_url

     get_url:

       url: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz

       dest: /opt/tomcat9

       mode: 0755

       validate_certs: no

 

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

https://github.com/joneconsulting/jenkins_cicd_script/blob/master/playbook_script/playbook-sample2-linux.yml

위에 공유한 playbook 파일은 OS가 Linux일때의 스크립트입니다. Windows에서 Docker 컨테이너로 실행하실 때는 그냥 https://github.com/joneconsulting/jenkins_cicd_script/blob/master/playbook_script/playbook-sample2.yml 파일로 실행해 보시기 바랍니다.

 

제 컴퓨터에서는 이상하게 checksum 부분을 붙이면 아래와 같이 에러가 뜨네요.

 

 

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

Windows에서 실행 시 Script 파일을 다음 경로에 있는 파일로 사용해 주시고, ansible-server 에서 ca-certificates 모듈도 업데이트 하신 다음 실행해 보시기 바랍니다.

https://github.com/joneconsulting/jenkins_cicd_script/blob/master/playbook_script/playbook-sample2-windows.yml

https://www.inflearn.com/course/%EC%A0%A0%ED%82%A8%EC%8A%A4-ci-cd-%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8/unit/123666?tab=curriculum

$ yum install -y ca-certificates

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

말씀하신 것처럼 리눅스 환경에서 ansible playbook의 get_url.checksum 부분에서 오류가 발생하는 것을 확인했습니다. 제가 테스트한 환경은 AWS EC2의 amazon-linux로 확인했습니다.

문제는, checksum을 처리하는 부분의 해당 python 코드에서의 문제가 아닌가 싶은데, 아래와 같이 checksum을 확인해 보면, 실제 checksum 정보는 존재하는데 파일명을 확인해 보면, apache-tomcat-9.0.65.tar.gz 파일이 아니라, apache-tomcat-9.0.65.tar.gz와 같이 파일명 앞에 '*'가 포함되어 있고, 이 파일 정보를 checksum 에서 찾을 수 없다고 하는 게 원인 인것 같습니다.

image

따라서, checksum 부분에서 처리하는 과정을 스크립트를 통해 일부 수정해 봤는데, checksum 파일을 다운로드 받은 후, 해당 파일에 파일정보가 포함되어 있는지 확인하도록 스크립트를 수정(12~18라인)했습니다. 아래와 같은 스크립를 기존 playbook 파일 대신 실행해 보시기 바랍니다. 이후에 있는 playbook 파일에서도 checksum 부분은 동일한 방법으로 처리해 보시면 될 것 같습니다.

image

샘플 코드는 아래 github에서도 다운로드 받으실 수 있습니다.

https://github.com/joneconsulting/jenkins_cicd_script/blob/master/playbook_script/playbook-sample2-linux.yml

감사합니다.

0

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

안녕하세요, 이도원입니다.

https://downloads.apache.org/tomcat/tomcat-9/v9.0.65/bin/apache-tomcat-9.0.65.tar.gz.sha512

위 체크섬 관련 링크를 엑세스 해 보니, 아래와 같은 결과가 확인 되고 있는데, 스크립트 확인 후 다시 실행해 보실 수 있을까요? 지속적인 에러가 발생하시면, 사용 OS환경하고 사용하신 ansible 이미지를 알려주시면, 동일환경에 테스트해 보도록 하겠습니다.

image

감사합니다.

안녕하세요 강사님 저도 동일한 오류가 나와서 문의를 드립니다. 제공해주신 github의 yml파일에서도 동일한 에러가 나오고 있습니다.

사용 OS 환경은 Linux이고 제공해주신 Docker image로 Ansible을 올렸습니다.

Dowon Lee님의 프로필 이미지
Dowon Lee
지식공유자

사용하신 운영체제가 OS라는 말씀이신거죠? 저희가 Windows, MacOS, MacOS M1 에서 테스트했었는데, 리눅스환경은 AWS에서 테스트 해 보고 결과 공유해 드리겠습니다.

sm kim님의 프로필 이미지
sm kim

작성한 질문수

질문하기