Playbook실행시 에러가 발생할경우 테스크가
중지되는걸 방지 하기 위해 ignore_errors: yes를 추가해주자

샘플:

—-
- nam: Playing with Ansible and docker build
hosts: localhost
connection: local
tasks:
- name: stop current running container
command: docker stop simple-devops-container
ignore_errors: yes

컨테이너를 삭제할려고 할때 해당 컨테이너각 없으면 에러가 발생하고 실행이 중지됨

이때 ignore_errors: yes옵션으로 에러를 스킵하고 다음 task로 진행되도록 하면 됨

User가 ansadmin이고 ansible-playbook실행시

Task실행시

fatal: [172.31.xx.xx]: FAILED! => {“msg”: “Missing sudo password”}

Solution
- Add ansbdmin user to sudousers file on managed host

Entry in /etc/sudoers files
ansadmin ALL=(ALL) NOPASSWD: ALL

'나는 노동자 > 이런저런 Tip' 카테고리의 다른 글

Jenkins failed job 무시하기  (0) 2019.12.18
absible playbook errors skip  (0) 2019.12.17
ansible become  (0) 2019.12.17
ansible localhost  (0) 2019.12.17
jenkins tomcat 관련 이런저런것들  (0) 2019.12.16

ansible 2.9 부터 sudo가 없어지고 대신 become이 사용됨
become은 특정사용자로 전환(become)할지 여부이고,
true/false/yes/no로 설정한다. 그리고 어떤 사용자로 서전환될지는 become_user로 설정하면 된다.

'나는 노동자 > 이런저런 Tip' 카테고리의 다른 글

absible playbook errors skip  (0) 2019.12.17
ansible Missing sudo password  (0) 2019.12.17
ansible localhost  (0) 2019.12.17
jenkins tomcat 관련 이런저런것들  (0) 2019.12.16
Jenkins maven and jdk 설정하기  (0) 2019.12.16

ansibel-playbook -i hosts jaeyong.yml

hosts 파일 내용
vi hosts
localhost

 

Task에서
fatal: [localhost]: FAILED1 => {“changed”: false, “failed”: true, “module_stderr”: “sudo: a password is required\n”, “module_stdout”: “msg”: “MODULE FAILURE”, “rc”: 1}

뭐 이렇게 나오면,,,
그냥 hosts파일일 입력하지 않아고

vi jaeyong.yml
—-
- name: “Play without hosts file with Ansible”
hosts: localhost
connection: local
tasks:
- name: 블라블라

뭐 이렇게 주며고 실행시 -i hosts를 입력하지 않고 그냥
ansible-playbook jaeyong.yml

뭐 이렇게 하면 된다.

'나는 노동자 > 이런저런 Tip' 카테고리의 다른 글

ansible Missing sudo password  (0) 2019.12.17
ansible become  (0) 2019.12.17
jenkins tomcat 관련 이런저런것들  (0) 2019.12.16
Jenkins maven and jdk 설정하기  (0) 2019.12.16
Jenkins PKIX path building failed  (0) 2019.12.16

(1) 초기 설치 후 설정하기

초기설정후 manager 로그인 안될때
해당 서버(톰캣) 혹은 컨테이너로 로그인하자
컨테이너의 경우 vi 를 설치하지 않았다면
docker cp 나 kubectl cp로 외부로 빼서 수정하고 다시 넣어줘야한다

각 파일의 경로는 틀릴수가 있으니 없으면 find 로 찾기 바란다
find / -name tomcat-users.xml

암튼 vi /usr/share/tomcat/conf/tomcat-users.xml

<!—
<role rolenam=“tomcat”/>
~~
~~
—>
이렇게 되어 있다
그냥 냅두고 하나 추가하자
<role rolename=“manager-gui”/>
<user username=“tomcat” password=“jaeyong” roles=“manager-gui”/>
[저장]
아직 파일이 하나 더 남았다
vi /usr/share/tomcat/webapps/manager/META-INF/context.xml

<Context antiResourceLocking=“false” privileged=“true”>
<!—
<Valve className=“org.apache.catalina.valves.RemoteAddrvalve”
Allow=“127\.\d+\.\d+\.\d+|::1|0:0:0:0;0:0:0:1”/>
—>

해당 부분을 위처럼 주석 처리해주자
이제 접속해서 Maanger App를 선택하고 id/pw를 주면 관리화면으로 넘어간다

======= 젠킨스 빌드시 톰캣 에러 처리 =======
젠킨스 빌드시
메이븐으로 선택하고 git정보 넣고
Build
Root POM: pom.xml
Goals and options: clean install package

빌드후 조치에서 Deploy war/ear to a container선택
WAR/EAR files: **/*.war
Context path는 그냥 냅둠
Containers. Credentials [add]선택해서 톰캣 계정 암호 넣음(위에서 만든거) ID는 이름으로 보여지는 값임
Tomcat URL: http://톰캣주소

암튼 위처럼 하고 빌드하는데
잘돌다가 (console output)

TomcatManagerException: The username you provided is not allowed to use the text-based Tomcat Maager (error 403) 뭐 이런게 기분나쁘네 뜬때가 있다.

이땐 휴~~ 또 tomcat-users.xml을 수정해줘야한다
아래처럼 수정해주자

<role rolename=“manager-gui”/>
<role rolename=“manager-script”/>
<user username=“tomcat” password=“jaeyong” roles=“manager-gui, manager-script”/>

[저장]

다시 빌드하면 된다..암튼 난 문제 해결되었음


'나는 노동자 > 이런저런 Tip' 카테고리의 다른 글

ansible become  (0) 2019.12.17
ansible localhost  (0) 2019.12.17
Jenkins maven and jdk 설정하기  (0) 2019.12.16
Jenkins PKIX path building failed  (0) 2019.12.16
git push 시 crumb was ....  (0) 2019.12.11

젠킨스 관리 -> Global Tool Configuration
아래로 가다보면 JDK가 보이고 바로 밑에
JDK installations를 클릭하면
암튼 뭐 넣으라고 나온다

젠킨스 서버나(나 같은경우 컨테이너) 컨테이너에서
echo $JAVA _HOME 하면 경로가 나온다
안나오면 find / -name java 뭐 이렇게 찾아보던가 아님 설치해야징

JDK Name: Java
JAVA_HOME: /usr/local/openjdk-8

 

그 바로바로 밑에 Maven이 보이면 이번엔 maven installations를 선택

이것도 젠킨스 서버에서 혹은 컨테이너에서
경로를 잡아주면 된다 나 같은 경우 경로를 안잡어서

find / -name mvn으로 확인한후
MAVEN_HOME: /var/jenkins_home/TEST/maven
요케 넣고
해당 서버에 경로가 잡혀있지 않다면
cd /var/jenkins_home/TEST/maven/bin
mvn -v 엔터치면
Apache Maven 3.6.2 뭐 이렇게 나온다
해당 버젼을 maven name에 넣어주자
Maven Name: maven 3.6.2.

끝~~~~
웬만하면 방화벽안이라면 JDK나 MAVEN하단의 Install automatically는 체크를 해제하자!!

'나는 노동자 > 이런저런 Tip' 카테고리의 다른 글

ansible localhost  (0) 2019.12.17
jenkins tomcat 관련 이런저런것들  (0) 2019.12.16
Jenkins PKIX path building failed  (0) 2019.12.16
git push 시 crumb was ....  (0) 2019.12.11
git empty commit 빈 커밋  (0) 2019.12.11

Javax.net.ssl.SSLHandshakeExecption:sun.security.validator.ValidatorException: PKIX path building failed sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
뭐 이런 에러가 발생할 경우
플러그인 관리의 고급에서 업데이트 사이트 https://undates.jenkins.io/update-center.json을 http로 변경해준다
젠킨드관리 -> Configure Global Security에서 하단 Plugin Manager 에 Use browser for metadata download의 체크박스를 선택해준다
암튼 나 같은 경우 방화벽땜시 이것도 저것도 안되서
ssl(https)부분을 skip하기 위해
https://updates.jenkins-ci.org/download/plugins/skip-certificate-check/
해당 플러그인을 다운받아 젠킨스 플러그인 디렉토리에 넣고 재시작하니 위와 같은 에러가 없어졌다

NO valid crumb was included in request for 블라블라

젠킨스 - Configure Global Security 에서

crumb부분의 Prevent Cross Site Request Forgery exploits 선택버튼의 체크를. 해제한다

git commit —allow-empty -m “abcd”

'나는 노동자 > 이런저런 Tip' 카테고리의 다른 글

Jenkins PKIX path building failed  (0) 2019.12.16
git push 시 crumb was ....  (0) 2019.12.11
github git push 에러 해결방법  (0) 2019.12.11
jenkins docker.sock permission denied  (0) 2019.12.06
minikibe dashboard error  (0) 2019.12.04

+ Recent posts