一键导入
devops-deployment
Docker containerization, Kubernetes/OpenShift deployment, Ansible automation, and CI/CD pipeline configuration for production-ready applications
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Docker containerization, Kubernetes/OpenShift deployment, Ansible automation, and CI/CD pipeline configuration for production-ready applications
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Use this skill to learn hot to use the IBM Cloud CLI (`ibmcloud`) commands, flags, command patterns, or troubleshooting guidance. Covers core CLI workflows: install/verify/update, login with SSO or API keys, select account/region/resource group targets, inspect and configure CLI output, manage plug-ins (e.g. `vpc-infrastructure` / `ibmcloud is ...` for VPC infrastructure.).
Build voice-enabled agents in watsonx Orchestrate using the ADK. This guide covers initial setup, key concepts for building your first voice agent.
Reusable skills for the Turbonomic Resource Dashboard project. Each skill is a specialized workflow that Bob can activate to help with specific development tasks.
Deploy and manage HashiCorp Vault using Ansible automation with proper configuration, permissions, and security setup.
Plan and run evaluations, red-teaming, and runtime observability for watsonx Orchestrate (WXO) agents across Developer Edition and SaaS. Use when validating WXO agents pre-deploy, authoring benchmark JSON DAGs, interpreting Journey Success / Tool Call Recall / Agent Routing F1 / RAG Faithfulness, diagnosing agent failures, running adversarial red-teaming (Instruction Override, Jailbreaking, Crescendo Attack), searching runtime traces, exporting traces via the Python SDK, wiring Langfuse for cost & latency analysis, or registering model pricing in Langfuse. Interview-first; emits bash commands for the user to run in their IDE terminal.
Evaluate GenAI applications — RAG pipelines, LLM/chatbot outputs, and AI agents with tool-calling — before deployment using IBM watsonx.governance metrics. Use when scoring RAG faithfulness / answer relevance / context relevance / retrieval precision, screening LLM outputs for HAP / PII / social bias / jailbreak / prompt safety risk, evaluating agentic tool-call accuracy / parameter accuracy / relevance / syntactic validity, authoring custom LLM-as-judge metrics (criteria_judge or prompt_template styles) for domain-specific concerns, preparing eval datasets in the watsonx-gov SDK format, interpreting results against pass/fail thresholds, or producing prioritized [CRITICAL]/[WARNING]/[INFO] recommendations. Partners install `ibm-watsonx-gov[metrics,agentic,tools,llmaj]` directly and call the SDK in-process; no MCP server, no hosted dependency.
基于 SOC 职业分类
| name | devops-deployment |
| description | Docker containerization, Kubernetes/OpenShift deployment, Ansible automation, and CI/CD pipeline configuration for production-ready applications |
Use this skill when deploying applications, creating container images, automating infrastructure, setting up CI/CD pipelines, or managing Kubernetes/OpenShift resources.
# Build stage
FROM node:18-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
# Production stage
FROM nginx:alpine
COPY --from=builder /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
apiVersion: apps/v1
kind: Deployment
metadata:
name: frontend
namespace: turbonomic-dashboard
spec:
replicas: 2
selector:
matchLabels:
app: frontend
template:
metadata:
labels:
app: frontend
spec:
containers:
- name: frontend
image: registry.example.com/frontend:latest
ports:
- containerPort: 80
resources:
requests:
memory: "128Mi"
cpu: "100m"
limits:
memory: "256Mi"
cpu: "200m"
livenessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 30
periodSeconds: 10
readinessProbe:
httpGet:
path: /
port: 80
initialDelaySeconds: 5
periodSeconds: 5
---
- name: Deploy Turbonomic Dashboard
hosts: openshift
vars:
project_name: turbonomic-dashboard
registry: registry.example.com
tasks:
- name: Login to OpenShift
command: oc login {{ openshift_url }} --token={{ openshift_token }}
no_log: true
- name: Create project
command: oc new-project {{ project_name }}
ignore_errors: yes
- name: Apply manifests
command: oc apply -f {{ item }}
loop:
- kubernetes/namespace.yaml
- kubernetes/configmap.yaml
- kubernetes/services.yaml
- kubernetes/frontend-deployment.yaml
- kubernetes/backend-deployment.yaml
# Build images
docker build -t registry.example.com/frontend:latest ./frontend
docker build -t registry.example.com/backend:latest ./backend
# Push to registry
docker push registry.example.com/frontend:latest
docker push registry.example.com/backend:latest
apiVersion: v1
kind: ConfigMap
metadata:
name: app-config
namespace: turbonomic-dashboard
data:
API_URL: "http://backend-service:4000"
LOG_LEVEL: "info"
NODE_ENV: "production"
apiVersion: v1
kind: Secret
metadata:
name: app-secrets
namespace: turbonomic-dashboard
type: Opaque
stringData:
turbo-username: "admin"
turbo-password: "changeme"
apiVersion: route.openshift.io/v1
kind: Route
metadata:
name: frontend
namespace: turbonomic-dashboard
spec:
to:
kind: Service
name: frontend-service
port:
targetPort: 80
tls:
termination: edge
insecureEdgeTerminationPolicy: Redirect
project/
├── frontend/
│ └── Dockerfile
├── backend/
│ └── Dockerfile
├── kubernetes/
│ ├── namespace.yaml
│ ├── configmap.yaml
│ ├── services.yaml
│ ├── frontend-deployment.yaml
│ └── backend-deployment.yaml
├── ansible/
│ ├── deploy.yml
│ ├── inventory.ini
│ └── roles/
└── .github/
└── workflows/
└── deploy.yml
name: Build and Deploy
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Build Frontend
run: |
cd frontend
docker build -t ${{ secrets.REGISTRY }}/frontend:${{ github.sha }} .
docker push ${{ secrets.REGISTRY }}/frontend:${{ github.sha }}
- name: Build Backend
run: |
cd backend
docker build -t ${{ secrets.REGISTRY }}/backend:${{ github.sha }} .
docker push ${{ secrets.REGISTRY }}/backend:${{ github.sha }}
deploy:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Deploy to OpenShift
run: |
ansible-playbook ansible/deploy.yml \
-e "image_tag=${{ github.sha }}" \
-e "openshift_token=${{ secrets.OPENSHIFT_TOKEN }}"
Checks if the container is running. Kubernetes restarts the container if this fails.
livenessProbe:
httpGet:
path: /health
port: 4000
initialDelaySeconds: 30
periodSeconds: 10
timeoutSeconds: 5
failureThreshold: 3
Checks if the container is ready to serve traffic. Kubernetes removes it from service if this fails.
readinessProbe:
httpGet:
path: /ready
port: 4000
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
failureThreshold: 3
# Run as non-root user
FROM node:18-alpine
RUN addgroup -g 1001 -S nodejs && adduser -S nodejs -u 1001
USER nodejs
# Scan for vulnerabilities
RUN npm audit fix
# Use specific versions
FROM node:18.17.0-alpine
spec:
securityContext:
runAsNonRoot: true
runAsUser: 1001
fsGroup: 1001
containers:
- name: app
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop:
- ALL
# Check pod status
oc get pods -n turbonomic-dashboard
# View logs
oc logs -f deployment/frontend -n turbonomic-dashboard
# Describe pod
oc describe pod <pod-name> -n turbonomic-dashboard
# Execute command in pod
oc exec -it <pod-name> -n turbonomic-dashboard -- /bin/sh
# Port forward for debugging
oc port-forward svc/backend-service 4000:4000 -n turbonomic-dashboard
# Create image pull secret
oc create secret docker-registry registry-secret \
--docker-server=registry.example.com \
--docker-username=user \
--docker-password=pass \
-n turbonomic-dashboard
# Add to deployment
spec:
imagePullSecrets:
- name: registry-secret
# Check events
oc get events -n turbonomic-dashboard --sort-by='.lastTimestamp'
# Check logs from previous container
oc logs <pod-name> --previous -n turbonomic-dashboard
# Describe pod for details
oc describe pod <pod-name> -n turbonomic-dashboard
Refer to the following files in this skill folder for detailed guidance:
docker-guide.md - Docker best practices and patternskubernetes-guide.md - Kubernetes/OpenShift configurationansible-guide.md - Ansible automation patternscicd-guide.md - CI/CD pipeline setupmonitoring.md - Monitoring and observabilitylatest)latest tag in production