スキル一覧に戻る
martimramos

forge-lang-ansible

by martimramos

0🍴 0📅 2025年12月21日
GitHubで見るManusで実行

SKILL.md


name: forge-lang-ansible description: Ansible automation safety practices. Enforces check-mode-first workflow. Use when working with playbooks, roles, or inventory files.

Ansible Development

Safety Rules

NEVER run without --check first:

  • ansible-playbook on production
  • Any playbook that modifies systems

ALWAYS use:

  • --check for dry run
  • --diff to show changes
  • -v for verbosity

Workflow

┌────────────────────────────────────────────────┐
│  LINT → CHECK → DIFF → REVIEW → RUN           │
└────────────────────────────────────────────────┘

Step 1: Lint

ansible-lint playbook.yml

Step 2: Check Mode (Dry Run)

ansible-playbook playbook.yml --check --diff

Show output to user and wait for confirmation.

Step 3: Run (only after explicit approval)

ansible-playbook playbook.yml --diff

Linting

# Ansible-lint
ansible-lint playbook.yml

# Lint entire project
ansible-lint

# YAML formatting
yamlfmt -w .

Testing with Molecule

# Run full test cycle
molecule test

# Create and converge only
molecule converge

# Verify
molecule verify

# Destroy
molecule destroy

Project Structure

project/
├── ansible.cfg
├── inventory/
│   ├── production/
│   │   └── hosts.yml
│   └── staging/
│       └── hosts.yml
├── group_vars/
│   └── all.yml
├── host_vars/
├── roles/
│   └── my_role/
│       ├── tasks/
│       ├── handlers/
│       ├── templates/
│       ├── files/
│       ├── vars/
│       ├── defaults/
│       └── meta/
├── playbooks/
│   └── site.yml
└── README.md

Pre-Run Checklist

Ansible Checklist:
- [ ] ansible-lint passed
- [ ] --check mode completed
- [ ] --diff output reviewed
- [ ] Inventory correct for target env
- [ ] User confirmed changes
- [ ] Ready to run

Inventory Safety

  • Never hardcode production hosts
  • Use inventory groups
  • Separate prod/staging inventories
  • Use --limit for targeted runs
# Limit to specific hosts
ansible-playbook playbook.yml --limit webservers

# Limit to single host
ansible-playbook playbook.yml --limit host1.example.com

Syntax Checking

# Syntax check
ansible-playbook playbook.yml --syntax-check

# List tasks
ansible-playbook playbook.yml --list-tasks

# List hosts
ansible-playbook playbook.yml --list-hosts

# List tags
ansible-playbook playbook.yml --list-tags

Role Template

# roles/my_role/tasks/main.yml
---
- name: Ensure package is installed
  ansible.builtin.package:
    name: "{{ package_name }}"
    state: present
  become: true

- name: Template configuration file
  ansible.builtin.template:
    src: config.j2
    dest: /etc/myapp/config.yml
    owner: root
    group: root
    mode: '0644'
  notify: Restart myapp

スコア

総合スコア

60/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

+10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です