본문 바로가기

Devops

(9)
to use the 'ssh' connection type with passwords or pkcs11_provider, you must install the sshpass program 에러 해결 원인 sshpass 패키지가 서버에 설치되어있지 않아서 발생하는 오류이다, 해결방법 CentOS yum install -y sshpass Ubuntu apt install -y sshpass Mac curl -O -L https://fossies.org/linux/privat/sshpass-1.09.tar.gz && tar xvzf sshpass-1.09.tar.gz cd sshpass-1.09 ./configure sudo make install sshpass
Mac에서 Ansible 설치 및 테스트 하기 ansible이란? Ansible은 인프라 관리를 코드 기반으로 자동화하는 도구이다. 이름 그대로 IT 인프라를 코드 기반으로 자동 설치 및 구축/관리/프로비저닝 하는 프로세스이다. IaC 도구들이 있기 전, 관리자들이 다양한 IT 인프라들에 직접 접촉하여 필요한 프로그램을 설치하고 셋팅해왔다. 인프라가 점점 복잡해지면 너무나 고된 일이 된다. 하지만 IaC라는 것이 등장하면서 자동화 된 인프라 구축이 가능해졌다. 결론은, Ansible은 이런 IaC를 지향하는 오픈소스 기반의 자동화 도구이다. Ansible 특징 1. Agentless Chef / Puppet과 같은 IaC 솔루션들은 원격 서버에 에이전트를 설치해야한다. Ansible은 SSH를 기반으로 원격 서버에 명령을 전달하기 때문에 에이전트..
[git action] comment에 특정 단어를 입력시 action 시작 위 사진과 같이 merge 라는 단어를 comment달시 git action이 실행되게 해볼것이다. 코드는 아래와 같다. name: Flask App deploy on: issue_comment: types: [created] jobs: deploy: if: contains(github.event.comment.body, 'merge') ... ... issue_comment:부분과 if: contains... 부분이 핵심이다. PR도 하나의 issue로 취급되는 issue에 코멘트가 create되면 이 workflow를 실행시키겠다는 것을 의미한다. (github.event.comment.body, '이 부분에 단어 입력')를 설정해주면 그 단어를 입력 시 action이 실행된다. 아래는 flask ..
ansible실행중 python interpreter Error 해결방법 현재상황 ansible을 설치하고 간단하게 ping을 날렸더니 아래와 같이 warning이 뜬다... [WARNING]: Platform linux on host ansible-1 is using the discovered Python interpreter at /usr/bin/python, but future installation of another Python interpreter could change this. See https://docs.ansible.com/ansible/2.9/reference_appendices/interpreter_discovery.html for more information. 원인 대부분 linux에서는 python3.x 가 깔려있더라도 /usr/bin/python..
[Ansible] docker를 이용하여 간단한 ansible 환경 구성하기! docker란 참 편리한 툴이다. 원하는 환경을 그냥 뚝딱 만들어주니.... 준비사항 docker docker-compose centos7(다른 os도 무관) docker-compose.yml 파일 작성 docker run으로 하여 일일이 생성해도 괜찮지만 귀찮으니 간단한 compose파일을 만들어서 생성 시키도록 하겠다. ansible-main은 엔서블 코어를 설치할것이고, 나머지 ansible-1,2는 node용으로 사용할것 이다. 그리고 docker image는 sshd를 사용해야 하니 centos7에 sshd가 설치된 이미지를 사용한다. $ vi docker-compose.yml version: "3" services: ansible-main: container_name: ansible-main ..
[GitLab] gitlab-runner를 이용한 배포 자동화 Gitlab-CI 구성 & .gitlab-ci.yml 예제 저번 글에서는 GitLab과 gitlab-runner를 세팅하는법을 올렸다. 이번에는 .gitlab-ci.yml파일을 생성하여 CI/CD를 구성해보자. .gitlab-ci.yml 구성 gitlab-runner가 수행하도록 .gitlab-ci.yml를 짜보자. shell을 executor로 선택한 gitlab-runner에서 실행시킬라면 아래처럼 .gitlab-ci.yml를 작성해보자. 작성은 아래 에서 할 수 있다. 여기서 tags는 위에 명령어들(script)이 실행될 runner를 지정해주는 것이다. tags 설정법은 전 글에서 확인할 수 있다. stages: - test - deploy test: stage: test script: - cd..
[GitLab] docker-compose를 이용하여 GitLab Runner추가하기 GitLab Runner 란? Gitlab Runner는 Go언어로 작성된 GitLab CI와 함께 사용되는 작업수행 프로그램이다. CI(Continuous Integration)는 지속적인 통합이라는 개념으로, 지속적으로 변경내용을 통합해야 만하게 되는 시스템을 의미하며, 대표적인 프로그램으로 젠킨스가 있다. 다음과 같은 방식의 실행이 가능하다. 1. 다수의 작업을 동시에 실행 2. 서버들에서 다수의 토큰을 사용 가능( 프로젝트 단위로도 가능) 3. 토큰당 동시수행 작업 제한 가능 docker-compose 파일 작성 $GITLAB_HOME 은 여기선 /gitlab 으로 설정되어있다. # vi docker-compose.yml version: "3" services: gitlab-runner-1: co..
[GitLab] 관리자 패스워드 설정하기 gitlab 의 관리자(root)의 패스워드를 분실했을 때 재설정하는 방법이다. 설치시 기본 암호는 5iveL!fe 라는데... 난 왜 안되지,,,,, 컨테이너에 먼저 접속 글쓴이는 docker 컨테이너에 gitlab을 설치했기때문에 이 부분은 건너띄어도 된다. $ sudo docker exec -it $CONTAINER_ID /bin/bash GitLab 콘솔에 접속 아래 명령어를 입력하여 gitlab 콘솔에 접속한다. # docker container $ gitlab-rails console -e production -------------------------------------------------------------------------------- Ruby: ruby 2.7.4p191 (2..