ansible(pub_key 등록 및 node_exporter 설치)

kiyeon·2023년 3월 7일
0

ansible pubkey 등록

pubkey 생성

  • ssh-keygen -t rsa

타겟서버에 디렉토리 및 파일 생성

  • 디렉토리 및 파일 생성을 위해 아래 스크립에 추가
  • authorized_keys 파일 이름 및 권한 설정확인 (권한: 600, 다르게 설정 시 pubkey파일에 문제있다고 나옴)

로컬 pubkey 복사하여 타겟 서버에 추가

  • cat /"경로"/id_rsa.pub 로컬에서 출력하여 register: id_pub 변수로 지정
  • lineinfile 를 통해서 해당경로에 추가한다.

기타

  • ansible-playbook 최초에 -k 옵션을 추가하여 비밀번호 를 입력하여 pubkey 가 복사되도록 진행해야한다.
ansible-playbook -i ../int/test.inv remote-deploy -k
---
- name: ansible pubkey copy
  hosts: centos
  vars:
    home_path: "centos"
  tasks:
  - name: make directory
    file:
      path: "/home/{{ home_path }}/.ssh"
      state: directory

  - name: create empty file
    file:
      path: "/home/{{ home_path  }}/.ssh/authorized_keys"
      state: touch

  - name: read id_rsa.pub
    connection: local
    command: "cat /home/{{ home_path }}/.ssh/id_rsa.pub"
    register: id_pub
    run_once: true

  - name: lineinfile for authorized_keys
    lineinfile:
      path: "/home/{{ home_path }}/.ssh/authorized_keys"
      line: "{{ id_pub.stdout }}"

node_exporter 설정

유저 및 그룹 생성

  • node_exporter 서비스 실행을 위해 user 및 그룹을 생성한다.

node_exporter 복사 및 권한 설정

  • node_exporter 다운로드 후 해당 파일만(압축풀고 node_exporter) /usr/local/bin 경로에 복사한다.
  • 파일 권한이 755 가 아닌면 service 시작이 안되므로 권한을 변경해준다.
---
- name: install-node-exporter
  hosts: centos
  become: yes
  vars:
    ansible_become: yes
    ansible_become_method: su
    ansible_become_pass: 'test123'
    create_user: "node_exporter"
    src: "/home/gamepub/node_exporter"
    dest: "/usr/local/bin"
    system: "/etc/systemd/system"
  tasks:
  - name: Create group
    group:
      name: "{{ create_user }}"
      state: present

  - name: test debug
    debug:
      msg: "{{ create_user }}"


  - name: Create user
    user:
      name: "{{ create_user }}"
      group: "{{ create_user }}"
      state: present
      createhome: false

  - name: copy node_exporter
    copy:
      src: "{{ src }}/node_exporter"
      dest: "{{ dest }}"

  - name: copy node_exporter service
    copy:
      src: "{{ src }}/node_exporter.service"
      dest: "{{ system }}"

  - name: mode 755 node_exporter file
    file:
      path: "{{ dest }}/node_exporter"
      state: file
      mode: "0755"


  - name: service started node_exporter
    systemd:
      name: node_exporter
      enabled: true
      state: started
      daemon_reload: yes

node_exporter systemd.service 설정

  • 아래 파일을 만들고 /etc/systemd/system 경로에 복사한다.

    "Failed to execute operation: Invalid argument" 메세지가 뜬다면
    prometheus.service 파일을 다시 확인하자 (붙혀넣는 과정에서 파일에 문자 인코딩이나 필요 없는 공백 철자 오류 등이 있을 수 있음)

[Unit]
Description=Node Exporter
After=network.target

[Service]
User=node_exporter
Group=node_exporter
Type=simple
ExecStart=/usr/local/bin/node_exporter

[Install]
WantedBy=multi-user.target

0개의 댓글