Metadata-Version: 2.1
Name: asb-pl-template
Version: 0.1.1
Summary: A simple project template for Ansible
Home-page: https://github.com/hujianli94/asb-pl-template
Author: hujianli94
Author-email: your_email@example.com
License: MIT
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# ansible-playbook-template

## 简介
ansible-playbook-template是一个用于快速生成ansible playbook的工具。

该工具可以帮助您快速生成ansible playbook的项目结构，同时也可以帮助您快速生成ansible playbook的role结构。

支持如下功能：
- [x] 快速生成项目结构
- [x] 快速生成role结构,同 ansible-galaxy init 功能一致,支持生成多个role
- [x] 快速生成playbook结构
- [x] 快速生成inventory结构
- [x] 快速生成host_vars结构
- [x] 快速生成group_vars结构
- [x] 快速生成hosts结构
- [x] 快速生成ansible.cfg结构
- [x] 快速生成README.md结构
- [x] 快速生成requirements.yml结构
....

## 快速开始
```bash
pip install asb-pl-template

#You can install  asb-pl-template directly using pipx:
pipx install "git+https://github.com/hujianli94/asb-pl-template.git"
```

## 使用
```bash
# 快速生成项目结构和role结构
asb-pl-template create <project_name> --roles-path <path> --role-name <role_name>

# 快速生成playbook
asb-pl-template create <project_name> --playbook-name <playbook_name>

# 快速生成多个role
asb-pl-template create <project_name> --roles-path <path> --role-name <role_name> --role-name <role_name>

# 删除项目role
asb-pl-template delete <project_name> --roles-path <path> --role-name <role_name>

# 使用 --verbose 参数开启详细日志输出
asb-pl-template create <project_name> --roles-path <path> --role-name <role_name> --verbose


## 生成项目结构如下
<project_name>/
├── README.md            # 该专案的说明文件
├── ansible.cfg          # ansible config file
├── hosts                # inventory file for production servers
├── group_vars/
│   ├── main.yml         # 各环境共用的 vars
│   ├── local.yml        # 本机开发的 vars
│   ├── prod.yml         # 正式环境的 vars
│   └── stage.yml        # 测试环境的 vars
├── host_vars
│   ├── prod.yml         # 正式环境的主机 vars
│   └── stage.yml        # 测试环境的主机 vars
├── library/             # 自定义的模块
├── requirements.yml     # 依赖的 role
├── playbooks/
│   └── site.yml         # 主 playbook
│   └── site-local.yml   # 本机开发的 playbook
│   └── site-prod.yml    # 正式环境的 playbook
│   └── site-stage.yml   # 测试环境的 playbook
└── inventories/
    ├── prod/
    │   ├── group_vars/   # 组 vars
    │   ├── host_vars/    # 主机 vars
    │   └── inventory/    # 主机清单文件
    └── stage/
        ├── group_vars/   # 组 vars
        ├── host_vars/    #
        └── inventory/    #
└── roles/
    └── <role_name>/        # role name
        ├── tasks/        #
        │   └── main.yml  # main tasks file
        ├── handlers/     #
        │   └── main.yml  # handlers file
        ├── templates/    #
        │   └── ntp.conf.j2 # templates end in .j2
        ├── files/        #
        │   ├── bar.txt   # files
        │   └── foo.sh    # script files
        ├── vars/         #
        │   └── main.yml  # variables with this role
        ├── defaults/     #
        │   └── main.yml  # default variables
        └── meta/         #
            └── main.yml  # role dependencies
└── tests/
    └── test.yml        # playbook for testing
```


