[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-82642":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":14,"stars7d":15,"stars30d":16,"stars90d":14,"forks30d":14,"starsTrendScore":17,"compositeScore":18,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":23,"readmeContent":24,"aiSummary":25,"trendingCount":14,"starSnapshotCount":14,"syncStatus":26,"lastSyncTime":27,"discoverSource":28},82642,"ansible-handson","Yoas1\u002Fansible-handson","Yoas1","Ansible-HandsOn: Containerized Learning Environment Ansible-HandsOn is a lightweight, local lab environment designed for learning, testing, and mastering Ansible infrastructure automation. Instead of relying on resource-heavy Virtual Machines (VMs), this project leverages Docker containers to simulate a real-world network infrastructure in seconds.",null,"Shell",156,7,1,0,10,39,5,48.61,false,"main",true,[],"2026-06-12 04:01:38","# Ansible-HandsOn\nContainerized Learning Environment Ansible-HandsOn is a lightweight local lab environment designed for learning, testing, and mastering Ansible infrastructure automation.\n\nInstead of relying on resource-heavy Virtual Machines (VMs), this project leverages Docker containers to simulate a real-world network infrastructure in seconds.\n\n## System Overview\n\nThe system consists of 3 containers:\n\n```\n┌──────────────────────────────────────────────────┐\n│              ansible_controller                  │\n│  (Python + Ansible + code-server IDE)            │\n│  Port 8080 - Browser-based IDE                   │\n└────────────┬─────────────────────────┬───────────┘\n             │                         │\n             ▼                         ▼\n┌──────────────────────┐  ┌──────────────────────┐\n│   ansible_worker1    │  │   ansible_worker2    │\n│   Ubuntu 22.04       │  │   Red Hat UBI 9      │\n│   OpenSSH + Python   │  │   OpenSSH + Python   │\n└──────────────────────┘  └──────────────────────┘\n```\n\n## Directory Contents\n\n### `.config\u002F` — Central Configuration Files\n\n| File | Role |\n|------|------|\n| **ansible.cfg** | Main Ansible configuration. Sets inventory location, Vault password file, disables host key checking (suitable for Docker), and enables the timer callback. |\n| **inventory.yaml** | Defines managed servers: `prod` (192.168.0.1), `dev` (192.168.0.2), and `testing` (worker1, worker2). The `testing` group uses `admin` as the default user. |\n| **vault.secret** | Default Ansible Vault password (`devops`). Used for encrypting secrets like users and passwords. |\n| **ansible-lint.yaml** | Configuration for ansible-lint. Set to offline mode, excludes vault files. |\n| **yamllint.yaml** | Configuration for yamllint — limits line length to 100 characters and configures quote handling. |\n| **markdown-lint.json** | Configuration for pymarkdown — limits line length to 120 characters (excluding code blocks). |\n| **requirements.txt** | Python packages to install in the controller: ansible, ansible-lint, kubernetes, yamllint, pre-commit, and more. |\n\n## Installition\n### Docker Compose:\n```yaml\n---\nservices:\n  ansible-controller:\n    image: yoas1\u002Fansible-handson:controller-0.0.1\n    container_name: ansible_controller\n    hostname: ansible_controller\n    stdin_open: true\n    tty: true\n    ports:\n      - 8080:8080\n    volumes:\n      - .\u002F:\u002Fworkspace\n    networks:\n      - ansible\n    depends_on:\n      - worker1\n      - worker2\n    restart: unless-stopped\n  \n  worker1:    \n    image: yoas1\u002Fansible-handson:worker1-0.0.1\n    hostname: worker1\n    container_name: ansible_worker1\n    networks:\n      - ansible\n    restart: unless-stopped\n\n  worker2:\n    image: yoas1\u002Fansible-handson:worker2-0.0.1\n    hostname: worker2\n    container_name: ansible_worker2\n    networks:\n      - ansible\n    restart: unless-stopped\n\n\nnetworks:\n  ansible:\n```\n## Typical Workflow\n\n1. **Spin up the environment:**\n   ```bash\n   docker compose up -d\n   ```\n\n2. **Access the IDE:**\n   Open a browser at `http:\u002F\u002Flocalhost:8080` (code-server with no authentication).\n\n3. **Run a Playbook:**\n   Inside the controller (or from the IDE terminal):\n   ```bash\n   ansible-playbook playbooks\u002Fhost_information.yaml\n   ```\n\n4. **Edit configs in real-time:**\n   Modify files in the `.config\u002F` directory — inotifywait on the controller will automatically run `update_config.sh` to apply changes.","Ansible-HandsOn 是一个基于 Docker 容器的轻量级本地实验室环境，旨在帮助用户学习、测试和掌握 Ansible 基础设施自动化。该项目通过使用 Docker 容器而非资源密集型虚拟机来快速模拟真实世界的网络基础设施，包括一个包含 Ansible 控制节点及两个工作节点（分别运行 Ubuntu 22.04 和 Red Hat UBI 9）的系统架构。控制节点预装了 Python、Ansible 以及 code-server IDE，并通过浏览器访问，方便进行代码编辑与任务执行；工作节点则安装了 OpenSSH 和 Python，以支持远程管理和脚本执行。此外，项目还提供了详细的配置文件管理方案，如 Ansible 配置、库存定义、Vault 密码等，便于用户定制化设置。此工具非常适合希望在低开销环境下熟悉或深入研究 Ansible 自动化的开发人员与运维工程师使用。",2,"2026-06-11 04:08:48","CREATED_QUERY"]