← 홈

🔧

⌘K
🤖
Claude Code AI 도구
🤗
Hugging Face AI 도구
🦜
LangChain AI 도구
🧠
Keras AI 도구
🦙
Ollama AI 도구
🐍
Python 프로그래밍 언어
🟨
JavaScript 프로그래밍 언어
🔷
TypeScript 프로그래밍 언어
⚛️
React 프로그래밍 언어
🐹
Go 프로그래밍 언어
🦀
Rust 프로그래밍 언어
📊
MATLAB 프로그래밍 언어
🗄️
SQL 프로그래밍 언어
⚙️
C/C++ 프로그래밍 언어
Java 프로그래밍 언어
🟣
C# 프로그래밍 언어
🍎
Swift 프로그래밍 언어
🟠
Kotlin 프로그래밍 언어
Next.js 프로그래밍 언어
💚
Vue.js 프로그래밍 언어
🔥
Svelte 프로그래밍 언어
🎨
Tailwind CSS 프로그래밍 언어
💚
Node.js 프로그래밍 언어
🌐
HTML 프로그래밍 언어
🎨
CSS/SCSS 프로그래밍 언어
🐘
PHP 프로그래밍 언어
💎
Ruby 프로그래밍 언어
🔴
Scala 프로그래밍 언어
📊
R 프로그래밍 언어
🎯
Dart 프로그래밍 언어
💧
Elixir 프로그래밍 언어
🌙
Lua 프로그래밍 언어
🐪
Perl 프로그래밍 언어
🅰️
Angular 프로그래밍 언어
🚂
Express.js 프로그래밍 언어
🐱
NestJS 프로그래밍 언어
🛤️
Ruby on Rails 프로그래밍 언어
◼️
GraphQL 프로그래밍 언어
🟪
Haskell 프로그래밍 언어
💚
Nuxt.js 프로그래밍 언어
🔷
SolidJS 프로그래밍 언어
htmx 프로그래밍 언어
💻
VS Code 개발 도구
🧠
PyCharm 개발 도구
📓
Jupyter 개발 도구
🧠
IntelliJ IDEA 개발 도구
💚
Neovim 개발 도구
🔮
Emacs 개발 도구
🔀
Git DevOps & CLI
🐳
Docker DevOps & CLI
☸️
Kubernetes DevOps & CLI
☁️
AWS CLI DevOps & CLI
🔄
GitHub Actions DevOps & CLI
🐧
Linux 명령어 DevOps & CLI
💻
Bash 스크립팅 DevOps & CLI
🌐
Nginx DevOps & CLI
📝
Vim DevOps & CLI
🔨
Makefile DevOps & CLI
🧪
Pytest DevOps & CLI
🪟
Windows DevOps & CLI
📦
패키지 매니저 DevOps & CLI
🍎
macOS DevOps & CLI
🏗️
Terraform DevOps & CLI
🔧
Ansible DevOps & CLI
Helm DevOps & CLI
🔨
Jenkins DevOps & CLI
🔥
Prometheus DevOps & CLI
📊
Grafana DevOps & CLI
💻
Zsh DevOps & CLI
🐟
Fish Shell DevOps & CLI
💙
PowerShell DevOps & CLI
🔄
Argo CD DevOps & CLI
🔀
Traefik DevOps & CLI
☁️
Azure CLI DevOps & CLI
☁️
Google Cloud CLI DevOps & CLI
📟
tmux DevOps & CLI
🔧
jq DevOps & CLI
✂️
sed DevOps & CLI
📊
awk DevOps & CLI
🌊
Apache Airflow DevOps & CLI
🔢
NumPy 데이터베이스 & 데이터
🐼
Pandas 데이터베이스 & 데이터
🔥
PyTorch 데이터베이스 & 데이터
🧠
TensorFlow 데이터베이스 & 데이터
📈
Matplotlib 데이터베이스 & 데이터
🐘
PostgreSQL 데이터베이스 & 데이터
🐬
MySQL 데이터베이스 & 데이터
🍃
MongoDB 데이터베이스 & 데이터
🔴
Redis 데이터베이스 & 데이터
🔍
Elasticsearch 데이터베이스 & 데이터
🤖
Scikit-learn 데이터베이스 & 데이터
👁️
OpenCV 데이터베이스 & 데이터
Apache Spark 데이터베이스 & 데이터
🪶
SQLite 데이터베이스 & 데이터
Supabase 데이터베이스 & 데이터
🔵
Neo4j 데이터베이스 & 데이터
📨
Apache Kafka 데이터베이스 & 데이터
🐰
RabbitMQ 데이터베이스 & 데이터
🔤
Regex 유틸리티
📝
Markdown 유틸리티
📄
LaTeX 유틸리티
🔐
SSH & GPG 유틸리티
🌐
curl & HTTP 유틸리티
📜
reStructuredText 유틸리티
🚀
Postman 유틸리티
🎬
FFmpeg 유틸리티
🖼️
ImageMagick 유틸리티
🔍
ripgrep 유틸리티
🔍
fzf 유틸리티
📗
Microsoft Excel 오피스 애플리케이션
📘
Microsoft Word 오피스 애플리케이션
📙
Microsoft PowerPoint 오피스 애플리케이션
📝
한컴 한글 한컴오피스
📽️
한컴 한쇼 한컴오피스
📊
한컴 한셀 한컴오피스
📄
Google 문서 Google Workspace
📊
Google 스프레드시트 Google Workspace
📽️
Google 프레젠테이션 Google Workspace
🔌
Cadence Virtuoso EDA & 하드웨어
⚙️
Synopsys EDA EDA & 하드웨어
💎
Verilog & VHDL EDA & 하드웨어
LTSpice EDA & 하드웨어
🔧
KiCad EDA & 하드웨어
📝
Notion 생산성 도구
💎
Obsidian 생산성 도구
💬
Slack 생산성 도구
🎮
Discord 생산성 도구
🎨
Figma 디자인 도구
📘
Confluence Atlassian
📋
Jira Atlassian
🃏
Jest 테스팅
Vitest 테스팅
🎭
Playwright 테스팅
🌲
Cypress 테스팅
🌐
Selenium 테스팅
💙
Flutter 모바일 개발
📱
React Native 모바일 개발
🍎
SwiftUI 모바일 개발
📱
Expo 모바일 개발
🐍
Django 웹 프레임워크
FastAPI 웹 프레임워크
🌶️
Flask 웹 프레임워크
🍃
Spring Boot 웹 프레임워크
🍸
Gin 웹 프레임워크
Vite 빌드 도구
📦
Webpack 빌드 도구
esbuild 빌드 도구
🐘
Gradle 빌드 도구
🪶
Maven 빌드 도구
🔧
CMake 빌드 도구
🎮
Unity 게임 개발
🤖
Godot 게임 개발
🔌
Arduino 임베디드 & IoT
🔍
Nmap 보안
🐕
Datadog 모니터링
📖
Swagger/OpenAPI 문서화
검색 결과가 없습니다
EN KO

명령어

임시 명령어

ansible all -m ping 모든 호스트 핑
ansible all -a "uptime" 모든 호스트에서 명령 실행
ansible webservers -m shell -a "df -h" 쉘 명령 실행
ansible all -m copy -a "src=file dest=/tmp/" 파일 복사
ansible all -m apt -a "name=nginx state=present" -b 패키지 설치 (sudo)
ansible all -m service -a "name=nginx state=started" -b 서비스 시작
ansible all -m user -a "name=deploy state=present" -b 사용자 생성
ansible-inventory --list 인벤토리 목록

플레이북 명령어

ansible-playbook playbook.yml 플레이북 실행
ansible-playbook playbook.yml -i inventory 인벤토리 지정
ansible-playbook playbook.yml --check 드라이 런
ansible-playbook playbook.yml --diff 차이 표시
ansible-playbook playbook.yml -v 상세 출력
ansible-playbook playbook.yml --limit web01 호스트 제한
ansible-playbook playbook.yml --tags deploy 특정 태그 실행
ansible-playbook playbook.yml --skip-tags test 태그 건너뛰기
ansible-playbook playbook.yml -e "env=prod" 추가 변수

인벤토리

INI 형식

기본 인벤토리
# inventory.ini
[webservers]
web01 ansible_host=192.168.1.10
web02 ansible_host=192.168.1.11

[databases]
db01 ansible_host=192.168.1.20

[production:children]
webservers
databases
호스트 변수
[webservers]
web01 ansible_host=192.168.1.10 http_port=80
web02 ansible_host=192.168.1.11 http_port=8080
그룹 변수
[webservers:vars]
ansible_user=deploy
ansible_ssh_private_key_file=~/.ssh/deploy_key

YAML 형식

YAML 인벤토리
# inventory.yml
all:
  children:
    webservers:
      hosts:
        web01:
          ansible_host: 192.168.1.10
        web02:
          ansible_host: 192.168.1.11
      vars:
        http_port: 80
    databases:
      hosts:
        db01:
          ansible_host: 192.168.1.20

플레이북

플레이북 구조

기본 플레이북
---
- name: Configure web servers
  hosts: webservers
  become: true

  tasks:
    - name: Install nginx
      apt:
        name: nginx
        state: present
        update_cache: yes

    - name: Start nginx
      service:
        name: nginx
        state: started
        enabled: yes
변수 사용
---
- name: Deploy application
  hosts: webservers
  vars:
    app_name: myapp
    app_port: 8080

  tasks:
    - name: Create app directory
      file:
        path: "/opt/{{ app_name }}"
        state: directory
핸들러 사용
---
- name: Configure nginx
  hosts: webservers
  become: true

  tasks:
    - name: Copy nginx config
      template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
      notify: Restart nginx

  handlers:
    - name: Restart nginx
      service:
        name: nginx
        state: restarted

제어 흐름

조건문
- name: Install on Debian
  apt:
    name: nginx
  when: ansible_os_family == "Debian"

- name: Install on RedHat
  yum:
    name: nginx
  when: ansible_os_family == "RedHat"
반복문
- name: Create users
  user:
    name: "{{ item }}"
    state: present
  loop:
    - alice
    - bob
    - charlie
딕셔너리 반복
- name: Create users with groups
  user:
    name: "{{ item.name }}"
    groups: "{{ item.groups }}"
  loop:
    - { name: alice, groups: admin }
    - { name: bob, groups: developers }
변수 등록
- name: Get uptime
  command: uptime
  register: uptime_result

- name: Show uptime
  debug:
    msg: "{{ uptime_result.stdout }}"
블록과 rescue
- name: Handle errors
  block:
    - name: Risky task
      command: /bin/false
  rescue:
    - name: Recovery task
      debug:
        msg: "Task failed, recovering"
  always:
    - name: Always runs
      debug:
        msg: "Cleanup"

자주 쓰는 모듈

파일 및 시스템 모듈

file
- name: Create directory
  file:
    path: /opt/app
    state: directory
    owner: deploy
    group: deploy
    mode: '0755'
copy
- name: Copy file
  copy:
    src: files/app.conf
    dest: /etc/app/app.conf
    owner: root
    mode: '0644'
template
- name: Deploy config
  template:
    src: templates/app.conf.j2
    dest: /etc/app/app.conf
lineinfile
- name: Add line to file
  lineinfile:
    path: /etc/hosts
    line: "192.168.1.10 server.local"
    state: present
user
- name: Create user
  user:
    name: deploy
    groups: sudo
    shell: /bin/bash
    generate_ssh_key: yes

패키지 및 서비스 모듈

apt
- name: Install packages
  apt:
    name:
      - nginx
      - python3
    state: present
    update_cache: yes
yum
- name: Install packages
  yum:
    name: nginx
    state: latest
service
- name: Manage service
  service:
    name: nginx
    state: started
    enabled: yes
systemd
- name: Manage systemd service
  systemd:
    name: myapp
    state: restarted
    daemon_reload: yes

기타 모듈

git
- name: Clone repository
  git:
    repo: https://github.com/user/repo.git
    dest: /opt/app
    version: main
docker_container
- name: Run container
  docker_container:
    name: myapp
    image: myapp:latest
    ports:
      - "8080:80"
uri
- name: Check endpoint
  uri:
    url: http://localhost:8080/health
    status_code: 200
  register: result
debug
- name: Print variable
  debug:
    var: my_variable

- name: Print message
  debug:
    msg: "Value is {{ my_variable }}"

역할

역할 구조

디렉토리 구조
roles/
  webserver/
    tasks/
      main.yml
    handlers/
      main.yml
    templates/
      nginx.conf.j2
    files/
    vars/
      main.yml
    defaults/
      main.yml
    meta/
      main.yml
역할 사용
---
- name: Configure servers
  hosts: webservers
  roles:
    - webserver
    - { role: database, db_name: mydb }
    - role: monitoring
      when: enable_monitoring
역할 생성
ansible-galaxy init myrole
Galaxy에서 설치
ansible-galaxy install geerlingguy.nginx
ansible-galaxy install -r requirements.yml

Ansible Vault

Vault 명령어

ansible-vault create secrets.yml 암호화된 파일 생성
ansible-vault edit secrets.yml 암호화된 파일 편집
ansible-vault view secrets.yml 암호화된 파일 보기
ansible-vault encrypt secrets.yml 기존 파일 암호화
ansible-vault decrypt secrets.yml 파일 복호화
ansible-vault rekey secrets.yml 비밀번호 변경
ansible-playbook --ask-vault-pass playbook.yml Vault 비밀번호로 실행
ansible-playbook --vault-password-file .vault_pass playbook.yml 비밀번호 파일 사용