• Ansible 이미지 다운로드
    • Windows, MacOS intel chip) docker pull edowon0623/ansible:latest (updated by 2022-09-21)
    • MacOS silicon chip, m1) docker pull edowon0623/ansible-server:m1
  • Windows) Ansible 컨테이너 실행 명령어 (방법1)
    • docker run -itd --name ansible-server -p 20022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/ansible:latest /usr/sbin/init

 

 

docker 컨테이너 ip확인

docker network inspect bridge

 

docker-server 172.17.0.4

ansible-server 172.17.0.3 

확인

 

 

/etc/ansible/hosts

[devops]

172.17.0.3

172.17.0.4

 

echo -e "[mygroup]\n172.17.0.3\n172.17.0.4" >> /etc/ansible/hosts

 

 

ansible 

1.핑

ansible all -m ping

2.메모리 확인

ansible all -m shell -a "free -h"

3.파일 복사

ansible all -m copy -a "src=./test.txt dest=/tmp"

4.프로그램 설치(httpd)

ansible devops -m yum -a "name=httpd state=present"

 

설치된 프로세스 확인

 yum list installed | grep httpd  

 

 

 

ansible playbook

사용자가 원하는 내용을 미리 작성해 놓는 파일

(설치,파일전송, 서비스 재시작, 다수의 서버에 반복 작업 처리..)

 

예제1

/etc/ansible/hosts [mygroup] 내용추가

first-playbook.yml

---
- name: Add an ansible hosts
  hosts: localhost
  tasks:
   - name: Add a ansible hosts
     blockinfile:
       path: /etc/ansible/hosts
       block: |
         [mygroup] 172.17.0.5

실행

ansible-playbook first-playbook.yml

 

같은 명령어 실행해도 ansible은 멱등성으로 중복처리 되지 않는다.

 

 

 

예제2

파일 복사

first-playbook-sample1.yml

현재 폴더에 sample.txt 만들어서 실행해 보자

- name: Ansible Copy Example Local to Remtoe
  hosts: devops
  tasks:
   - name: copying file with playbook
     copy:
       src: ~/sample.txt
       dest: /tmp
       owner: root
       mode: 0644

 

예제3

디렉터리 생성

톰켓 다운

first-playbook-sample2.yml

---
- name: Download Tomcat9 from tomcat.apache.org
  hosts: devops
  #become: yes
  # become_user: root
  tasks:
   - name: Create a Directory /opt/tomcat9
     file:
       path: /opt/tomcat9
       state: directory
       mode: 0755
   - name: Download the Tomcat checksum
     get_url:
       url: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.72/bin/apache-tomcat-9.0.72.tar.gz.sha512
       dest: /opt/tomcat9/apache-tomcat-9.0.69.tar.gz.sha512
   - name: Register the checksum value
     shell: cat /opt/tomcat9/apache-tomcat-9.0.69.tar.gz.sha512 | grep apache-tomcat-9.0.69.tar.gz | awk '{ print $1 }'
     register: tomcat_checksum_value
   - name: Download Tomcat using get_url
     get_url:
       url: https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.69/bin/apache-tomcat-9.0.69.tar.gz
       dest: /opt/tomcat9
       mode: 0755
       checksum: sha512:{{ tomcat_checksum_value.stdout }}"

 

 

 

'server' 카테고리의 다른 글

kubernetes ansible (1)  (0) 2022.11.05
EC2 생성  (0) 2022.11.01
kubernetes 기본  (0) 2022.11.01
ansible-server  (0) 2022.10.25
tomcat 설정  (0) 2022.10.17

docker가 설치되어있는 vm(컨테이너) 사용하기

 

 

 

1. Jenkins Plugin 설치

 

 

2. 도커서버 설치(window)

(Docker In Docker 방식)

docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup edowon0623/docker:latest /usr/sbin/init

 

(Docker Out Of Docker 방식)

docker run -itd --name docker-server -p 10022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/docker:latest /usr/sbin/init

도커서버 접속해보기

ssh root@localhost -p 1022

암호: P@ssw0rd

 

/root 경로  Dockerfile 확인

FROM tomcat:9.0

COPY ./hello-world.war /usr/local/tomcat/webapps

 

 

jenkins 관리 -> 시스템 설정 -> Publish over SSH

1.호스트(내 pc) IP 입력, 도커 서버 port입력, 암호: P@ssw0rd

 

 

Item - 구성

빌드 후 조치 -> Send build artifacts over SSH 선택

 

 

  • 실행 명령어
    • docker build --tag=cicd-project -f Dockerfile .
    • docker images 
    • docker image inspect cicd-project:latest
    • docker run -p 8080:8080 --name mytomcat cicd-project:latest

 

 

 

문제점: 재 빌드시 에러 발생

 

'server > jenkins' 카테고리의 다른 글

JenKins_1  (0) 2023.03.21
  • 이미지 다운로드
    • docker pull jenkins/jenkins
  • Jenkins 실행
    • docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure jenkins/jenkins:lts-jdk11
    • docker run -d -p 8080:8080 -p 50000:50000 --name jenkins-server --restart=on-failure -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
  • 초기 패스워드 확인

http://localhost:8080 접속하여 패스워드 입력

 

 

 

 

Setup Git

 

Jenkins 관리 -> 플러그인 관리

github 플러그인 설치

 

 

jenkins 관리 -> Global tool Configuration -> Git

 

Setup Maven

 

Maven integration  plugin 설치

 

jenkins 관리 -> Global tool Configuration -> maven

 

 

Git 연동

새로운 item 생성

 

 

Git Repository URL 설정

 

(git 저장소 파일구성)

 

Build 설정

 

빌드 실행

터널링 접속

docker exec -it 컨테이너ID  bash

 

 /var/jenkins_home/workspace/Second-Project/target/hello-world.war 

터널링으로 접속 후  해당 디렉토리에서 war파일 확인

 

 

 

Setup Tomcat

 

Deploy to container Plugin 설치

  • Tomcat 시작
    • Windows) .\bin\startup.bat 
    • MacOS) ./bin/startup.sh
  • Tomcat 종료
    • Windows) .\bin\shutdown.bat 
    • MacOS) ./bin/shutdown.sh
  • Tomcat 설정 변경
    • 포트 변경 ( jenkins 포트와 중복되지 않게 변경한다 ) 
      • %TOMCAT_HOME%\conf\server.xml
    • 접근 엑세스 변경 
      • %TOMCAT_HOME%\webapps\manager\META-INF\context.xml 
      • %TOMCAT_HOME%\webapps\host-manager\META-INF\context.xml 
    • 유저 추가
      • %TOMCAT_HOME%\conf\tomcat-users.xml
  • tomcat-users.xml 추가 내용

 

<role rolename="manager-gui" />
 
<role rolename="manager-script" />
<role rolename="manager-jmx" />
<role rolename="manager-status" />
<user username="admin" password="admin"  roles="manager-gui, manager-script, manager-jmx, manager-status"/>
<user username="deployer" password="deployer"
roles="manager-script"/>
<user username="tomcat" password="tomcat"  roles="manager-gui"/>

 

 

구성 -> 빌드후 조치

 

tomcat url은 localhost가 아닌 현재pc(톰갯이 실행된) IP직접 입력

 

+ Add 

톰캣에 설정한 deployer 유저와 패스워드 입력

 

'server > jenkins' 카테고리의 다른 글

Jenkins SSH docker  (0) 2023.03.21
[root@774bee08ece4 ~]# mkdir k8s
[root@774bee08ece4 ~]# cd k8s/
[root@774bee08ece4 k8s]# vi hosts
[root@774bee08ece4 k8s]# cat hosts
[ansible-server]
localhost

[kubernetes]
172.30.1.48

ansible-server 

kubernetes 그룹은 아이디는 호스트 아이디

 

ssh key 복사

[root@774bee08ece4 ~]# ssh-copy-id juyoungsun@172.30.1.48

 

핑 테스트

[root@774bee08ece4 ~]# ansible -i ./k8s/hosts kubernetes -m ping -u juyoungsun

 

window 

openssh 설치 후에도 에러 발생시

 

docker 컨테이너로 기동하고 있는 ansible-server에서 Windows PC(HOST)로 ssh-copy-id 명령어는 정상적인 실행이 안될 수 있습니다. ansible-server에서 Windows PC의 Openssh SERVER에 접속하여 ansible 명령어를 실행하기 위해서는 아래와 같은 방법을 사용해 보시기 바랍니다.

우선 아래 링크를 참고하시어 Windows PC에 Openssh Server를 설치하셨다는 가정아래 설명드립니다. 리눅스 서버는 SSH를 통해서 ansible이 통신하는 반면에 Windows 서버에서는 winrm 이라는 리모트 매니져를 통해서 통신합니다.

  1. ansible-server에서 아래 명령어를 이용하여 pywinrm을 설치하도록 합니다.
  2. $ yum install python39 -> python이 설치 되어 있지 않았기 때문에 python 설치

    $pip3 install --upgrade pip
  3. $ pip install pywinrm -> pywinrm 설치
  4. ansible-server에서 /etc/ansible/hosts 파일에 (파일이 존재하지 않으면 생성) 아래 내용과 같이 windows 서버의 정보를 입력합니다. (user와 password는 Windows PC 로그인 할 때 사용하는 관리자 계정을 사용하십시오)
  5. [windows][windows:vars]ansible_connection=winrmansible_user='관리자계정'
  6. ansible_port=5986
  7. ansible_winrm_server_cert_validation=ignore
  8. ansible_password='administrator암호'
  9. 192.168.0.11
  10. Windows 서버에서 아래 명령어를 Powershell(관리자 모드)에서 실행합니다.
  11. $url = "https://raw.githubusercontent.com/ansible/ansible/devel/examples/scripts/ConfigureRemotingForAnsible.ps1"(New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file)
  12. powershell.exe -ExecutionPolicy ByPass -File $file
  13. $file = "$env:temp\ConfigureRemotingForAnsible.ps1"

 

ping 확인

 ansible -i ./k8s/hosts windows -m win_ping

 

./k8s/hosts

[windows]
59.13.200.90

[windows:vars]
ansible_password='2356'
ansible_connection=winrm
ansible_winrm_server_cert_validation=ignore
ansible_user='sun'
ansible_port=5986

 

 

 

[root@774bee08ece4 ~]# cat k8s-cicd-deployment-playbook.yml
- name: Create pods using deployment
  hosts: kubernetes
  # become: true
  # user: ubuntu

  tasks:
  - name: delete the previous deployment
    command: kubectl delete deployment.apps/cicd-deployment

  - name: create a deployment
    command: kubectl apply -f cicd-devops-deployment.yml

오류 발생

 

절대경로 사용해야한다 

- name: Create pods using deployment
  hosts: kubernetes
  # become: true
  # user: ubuntu

  tasks:
  - name: delete the previous deployment
    command: /usr/local/bin/kubectl delete deployment.apps/cicd-deployment

  - name: create a deployment
    command: /usr/local/bin/kubectl apply -f /Users/juyoungsun/cicd-devops-deployment.yml

ansible-playbook -i ./k8s/hosts k8s-cicd-deployment-playbook.yml -u juyoungsun

 

window경우

command -> win_command ,

파일만 전체경로 설정

ex)

  tasks:
  - name: delete the previous deployment
    win_command: kubectl delete deployment.apps/cicd-deployment

  - name: create a deployment
    win_command: kubectl apply -f /Users/juyoungsun/cicd-devops-deployment.yml

 

 

- name: create service for deployment
  hosts: kubernetes
  # become: true
  # user: ubuntu

  tasks:
  - name: create a service
    command: /usr/local/bin/kubectl apply -f /Users/juyoungsun/cicd-devops-service.yml

 

ansible-playbook -i ./k8s/hosts k8s-cicd-service-playbook.yml -u juyoungsun

'server' 카테고리의 다른 글

Docker- Ansible  (0) 2023.03.29
EC2 생성  (0) 2022.11.01
kubernetes 기본  (0) 2022.11.01
ansible-server  (0) 2022.10.25
tomcat 설정  (0) 2022.10.17

 

 

 

 

1. ec2 서버 선택

아마존 리눅스 프리티어 사용

 

키페어 생성

 

 

 

생성 후 보안 설정 - 인바운드 규칙 수정

 

아웃바운드 규칙도 같이 수정해 준다.

 

Terminus Keychanin에 키페어 생성된 파일 등록 

 

 

ec2 주소 , 키 등록

 

주소는 생성한 ec2 퍼블릭 주소 

 

 

접속 후

자바 11버전 확인 후 설치

[ec2-user@ip-172-31-9-12 ~]$ yum list java*11*   
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
Available Packages
java-1.7.0-openjdk.x86_64                                   1:1.7.0.211-2.6.17.1.amzn2.0.1                      amzn2-core
java-1.7.0-openjdk-accessibility.x86_64                     1:1.7.0.211-2.6.17.1.amzn2.0.1                      amzn2-core
java-1.7.0-openjdk-demo.x86_64                              1:1.7.0.211-2.6.17.1.amzn2.0.1                      amzn2-core
java-1.7.0-openjdk-devel.x86_64                             1:1.7.0.211-2.6.17.1.amzn2.0.1                      amzn2-core
java-1.7.0-openjdk-headless.x86_64                          1:1.7.0.211-2.6.17.1.amzn2.0.1                      amzn2-core
java-1.7.0-openjdk-javadoc.noarch                           1:1.7.0.211-2.6.17.1.amzn2.0.1                      amzn2-core
java-1.7.0-openjdk-src.x86_64                               1:1.7.0.211-2.6.17.1.amzn2.0.1                      amzn2-core
java-11-amazon-corretto.x86_64                              1:11.0.17+8-1.amzn2                                 amzn2-core
java-11-amazon-corretto-headless.x86_64                     1:11.0.17+8-1.amzn2                                 amzn2-core
java-11-amazon-corretto-javadoc.x86_64                      1:11.0.17+8-1.amzn2                                 amzn2-core
java_cup.noarch                                             1:0.11a-16.1.amzn2                                  amzn2-core
java_cup-javadoc.noarch                                     1:0.11a-16.1.amzn2                                  amzn2-core
java_cup-manual.noarch                                      1:0.11a-16.1.amzn2                                  amzn2-core
javapackages-tools.noarch                                   3.4.1-11.amzn2                                      amzn2-core

[ec2-user@ip-172-31-9-12 ~]$ sudo yum install java-11-amazon-corretto.x86_64

 

자바 버전 확인

[ec2-user@ip-172-31-9-12 ~]$ java -version
openjdk version "11.0.17" 2022-10-18 LTS
OpenJDK Runtime Environment Corretto-11.0.17.8.1 (build 11.0.17+8-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.17.8.1 (build 11.0.17+8-LTS, mixed mode)

 

깃 설치

[ec2-user@ip-172-31-9-12 ~]$ sudo yum install git

 

git clone 

 

./gradlew build --exclude-task test

 

 

 

'server' 카테고리의 다른 글

Docker- Ansible  (0) 2023.03.29
kubernetes ansible (1)  (0) 2022.11.05
kubernetes 기본  (0) 2022.11.01
ansible-server  (0) 2022.10.25
tomcat 설정  (0) 2022.10.17

파드 생성 테스트(nginx)

➜  ~ kubectl run sample-nginx --image=nginx --port=80
pod/sample-nginx created
➜  ~ kubectl get pods
NAME           READY   STATUS    RESTARTS   AGE
sample-nginx   1/1     Running   0          78s

자제히 보기

➜  ~ kubectl describe pod/sample-nginx

 

파드 삭제

➜  ~ kubectl delete pod/sample-nginx
pod "sample-nginx" deleted
➜  ~ kubectl get pods
No resources found in default namespace.

 

 

deployment 는 pod 상위개념 , 배포단위를 deployment로 감싸서 배포하면

스케일링,스케쥴작업을 더 수월하게 가능

➜  ~ kubectl create deployment sample-nginx --image=nginx
deployment.apps/sample-nginx created

 

deployment 확인 pod확인

➜  ~ kubectl get deployments
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
sample-nginx   1/1     1            1           7s
➜  ~ kubectl get pods
NAME                            READY   STATUS    RESTARTS   AGE
sample-nginx-68847595c4-cbxnd   1/1     Running   0          15s

 

deployment 생성후 파드 삭제시 확인해보면 새로운 파드가 생성되어 있다.

➜  ~ kubectl delete pod/sample-nginx-68847595c4-cbxnd
pod "sample-nginx-68847595c4-cbxnd" deleted
➜  ~ kubectl get pods
NAME                            READY   STATUS    RESTARTS   AGE
sample-nginx-68847595c4-zfp24   1/1     Running   0          7s

 

deployment는 파드를 삭제하면

유지하기위한 최소한의 파드를 새로 생성한다

 

 

replicas 설정

➜  ~ kubectl scale deployment sample-nginx --replicas=2
➜  ~ kubectl get pods
NAME                            READY   STATUS    RESTARTS   AGE
sample-nginx-68847595c4-nfqth   1/1     Running   0          18s
sample-nginx-68847595c4-zfp24   1/1     Running   0          2m21s
➜  ~ kubectl get deployments
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
sample-nginx   2/2     2            2           3m14s

 

ready 2/2  2개정상작동/2개파드

 

 

다시 1개로 설정하면 1개 삭제됨

➜  ~ kubectl scale deployment sample-nginx --replicas=1
deployment.apps/sample-nginx scaled
➜  ~ kubectl get deployments
NAME           READY   UP-TO-DATE   AVAILABLE   AGE
sample-nginx   1/1     1            1           5m20s

 

삭제

➜  ~ kubectl delete deployment.apps/sample-nginx
deployment.apps "sample-nginx" deleted

 

yml파일로 nginx 서버 파드 생성

 

sample1.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 2
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:1.14.2
        ports:
        - containerPort: 80

생성

➜  ~ kubectl apply -f sample1.yml
deployment.apps/nginx-deployment created

확인 (kubectl get pods -o wide)

➜  ~ kubectl get pods
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-7fb96c846b-dxbcc   1/1     Running   0          30s
nginx-deployment-7fb96c846b-vjm8x   1/1     Running   0          30s
➜  ~ kubectl get deployments
NAME               READY   UP-TO-DATE   AVAILABLE   AGE
nginx-deployment   2/2     2            2           33s

 

터널링 통해접속

➜  ~ kubectl exec -it nginx-deployment-7fb96c846b-dxbcc -- /bin/bash
root@nginx-deployment-7fb96c846b-dxbcc:/# apt-get update
root@nginx-deployment-7fb96c846b-dxbcc:/# apt-get install -y curl wget

 

hostname -i

curl -X GET http://10.1.0.54

 

 

➜  ~ kubectl get services
NAME         TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)   AGE
kubernetes   ClusterIP   10.96.0.1    <none>        443/TCP   33d


➜  ~ kubectl expose deployment nginx-deployment --port=80 --type=NodePort
service/nginx-deployment exposed
➜  ~ kubectl get services
NAME               TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes         ClusterIP   10.96.0.1       <none>        443/TCP        33d
nginx-deployment   NodePort    10.96.222.248   <none>        80:30987/TCP   2s

 

포트 확인

http://localhost:30987 브라우저 접속해서 확인

 

 

➜  ~ kubectl delete service/nginx-deployment

 

 

 

 

cicd-devops-deployment.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: cicd-deployment
spec:
  selector:
    matchLabels:
      app: cicd-devops-project
  replicas: 2

  template:
    metadata:
      labels:
        app: cicd-devops-project
    spec:
      containers:
      - name: cicd-devops-project
        image: (docker hub id)/cicd-project-ansible
        imagePullPolicy: Always
        ports:
        - containerPort: 8080

 

확인

➜  ~ kubectl get deployment
NAME              READY   UP-TO-DATE   AVAILABLE   AGE
cicd-deployment   2/2     2            2           29s
➜  ~ kubectl get pods
NAME                              READY   STATUS    RESTARTS   AGE
cicd-deployment-6f69cf744-cqv2z   1/1     Running   0          32s
cicd-deployment-6f69cf744-sx7dz   1/1     Running   0          32s

 

서비스 생성

 

➜  ~ cat cicd-devops-service.yml
apiVersion: v1
kind: Service
metadata:
  name: cicd-service
  labels:
    app: cicd-devops-project
spec:
  selector:
    app: cicd-devops-project
  type: NodePort
  ports:
    - port: 8080
      targetPort: 8080
      nodePort: 32000

 

➜  ~ kubectl get service
NAME           TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
cicd-service   NodePort    10.105.177.69   <none>        8080:32000/TCP   10s
kubernetes     ClusterIP   10.96.0.1       <none>        443/TCP          33d

 

http://localhost:32000/hello-world/ 

 

 

 

'server' 카테고리의 다른 글

Docker- Ansible  (0) 2023.03.29
kubernetes ansible (1)  (0) 2022.11.05
EC2 생성  (0) 2022.11.01
ansible-server  (0) 2022.10.25
tomcat 설정  (0) 2022.10.17

iac

infrastructure as code. 

 

구성관리 도구 

 

it인프라 , 베어메탈 서버등의 무리장비 및 가상 머신과 관련된 구성 리소스를 관리

 

할수있는일

설치 : apt-get . yum . hombrew

파일 스크립트 배포 copy

다운로드 get_url ,git

실행 shell. task

 

  • Docekr repository
  • Ansible 이미지 다운로드
    • Windows, MacOS intel chip) docker pull edowon0623/ansible:latest (updated by 2022-09-21)
    • MacOS silicon chip, m1) docker pull edowon0623/ansible-server:m1
  • Windows) Ansible 컨테이너 실행 명령어 (방법1)
    • docker run -itd --name ansible-server -p 20022:22 -e container=docker --tmpfs /run --tmpfs /tmp -v /sys/fs/cgroup:/sys/fs/cgroup:ro -v /var/run/docker.sock:/var/run/docker.sock edowon0623/ansible:latest /usr/sbin/init
  • MacOS silicon chip, m1)) Ansible 컨테이너 실행 명령어
    •  docker run --privileged --name ansible-server -itd -p 20022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup --cgroupns=host edowon0623/ansible-server:m1 /usr/sbin/init
  • ssh root@ 172.30.1.30 -p 20022
  • P@ssw0rd 
    • 컨테이너에서 실행, /etc/sysconfig/docker 파일이 존재하지 않을 경우에는 아래의 vi, sed 명령어는 실행하지 않음) 
      • $ vi /etc/sysconfig/docker
      • (window) $ sed -i -e 's/overlay2/vfs/g' /etc/sysconfig/docker-storage 
      • $ systemctl start docker
      • $ systemctl status docker

 

  • SSH 키 생성
    • ssh-keygen
    • ssh-copy-id root@[접속할 서버 IP]

 

실행옵션

-i 적용될 호스트들에 대한 파일정보. (기본 /etc/ansible/hosts)

-m 모듈선택

-k 관리자 암호요청

 

--list-hosts적용되는 호스트목록

 

멱등성

같은 설정을 여러 번 적용하더라도 결과가 달라지지 않는 성질

 

 

 

 

/etc/ansible/hosts

[root@774bee08ece4 ~]# cat /etc/ansible/hosts
[devops]
172.17.0.3
172.17.0.4

 

핑 보내보기

ansible devops -m ping. 

ansible all -m ping

 

메모리 확인

free -h 

ansible devops -m shell -a "free -h"

 

파일 복사

echo "HI, ansible" >> test.txt

ansible devops -m copy -a "src=./test.txt dest=/tmp"

 

 

프로그램 설치

yum list installed | grep httpd

ansible devops -m yum -a "name=httpd state=present"

 

 

 

ansible playbook 사용하여 파일 내용 수정

[root@774bee08ece4 ~]# vi first-playbook.yml
[root@774bee08ece4 ~]# cat first-playbook.yml
---
- name: Add an ansible hosts
  hosts: localhost
  tasks:
   - name: Add an ansible hosts
     blockinfile:
      path: /etc/ansible/hosts
      block: |
       [mygroup]
       172.17.0.5

ansible-playbook first-playbook.yml

 

 

ansible-playbook  사용하여 파일복사

[root@774bee08ece4 ~]# vi playbook-sample1.yml
[root@774bee08ece4 ~]# cat playbook-sample1.yml
- name: Ansible Copy Example Local to Remtoe
  hosts: devops
  tasks:
    - name: copying file with playbook
      copy:
        src: ~/sample.txt
        dest: /tmp
        owner: root
        mode: 0644

ansible-playbook playbook-sample1.yml

 

 

 

ansible-playbook playbook-sample2.yml

 

---
- 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.68/bin/apache-tomcat-9.0.68.tar.gz
       dest: /opt/tomcat9
       mode: 0755
       checksum: sha512:https://downloads.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz.sha512

(tomcat버전은 바뀜)

'server' 카테고리의 다른 글

Docker- Ansible  (0) 2023.03.29
kubernetes ansible (1)  (0) 2022.11.05
EC2 생성  (0) 2022.11.01
kubernetes 기본  (0) 2022.11.01
tomcat 설정  (0) 2022.10.17
  • OpenJDK 설치 
  • Tomcat 시작
    • Windows) .\bin\startup.bat 
    • MacOS) ./bin/startup.sh
  • Tomcat 종료
    • Windows) .\bin\shutdown.bat 
    • MacOS) ./bin/shutdown.sh
  • Tomcat 설정 변경
    • 포트 변경 
      • %TOMCAT_HOME%\conf\server.xml
    • 접근 엑세스 변경 
      • %TOMCAT_HOME%\webapps\manager\META-INF\context.xml 
      • %TOMCAT_HOME%\webapps\host-manager\META-INF\context.xml 
    • 유저 추가
      • %TOMCAT_HOME%\conf\tomcat-users.xml
  • tomcat-users.xml 추가 내용

 

 

port 설정

conf/server.xml

<Connector port="8088" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
 
 
webapps/manager/META-INF/context.xml
 
로컬 주소만 접속 허용 주석처리
<Context antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->

 

role 설정

conf/tomcat-users.xml

<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>
 

 

 

jenkins 플러그인 설치

Publish Over SSH

 

 

 

 

docker container에 배포하기

 

 

centos 기반 서버

ssh,docker 엔진 installed

https://hub.docker.com/r/edowon0623/docker-server

 

systemctl status docker 확인

 

  • docker run --privileged --name docker-server -itd -p 10022:22 -p 8081:8080 -e container=docker -v /sys/fs/cgroup:/sys/fs/cgroup:rw --cgroupns=host edowon0623/docker-server:m1 /usr/sbin/init

 

  • 실행 명령어
    • docker build --tag=cicd-project -f Dockerfile .
    • docker images 
    • docker image inspect cicd-project:latest
    • docker run  -d -p 8080:8080 --name mytomcat cicd-project:latest

'server' 카테고리의 다른 글

Docker- Ansible  (0) 2023.03.29
kubernetes ansible (1)  (0) 2022.11.05
EC2 생성  (0) 2022.11.01
kubernetes 기본  (0) 2022.11.01
ansible-server  (0) 2022.10.25

+ Recent posts