部署到云主机(堡垒机)

# 主机未连接公网但有堡垒机的部署

通过堡垒机进行主机部署时,hosts中应该是堡垒机的ip,同时需要:

  1. sub-hosts:存放内网主机的ip
  2. sub-playbook.yml:同可连接公网的主机部署的playbooks.yml
  3. 完整的文件结构如下(查看完整文件示例仓库 (opens new window)):
- oci_project               ......项目根目录
  - .coding-ci.yml          ......ci配置文件
  - hosts                   ......堡垒机分组配置
  - playbook.yml            ......堡垒机任务
  - sub-hosts               ......主机分组配置
  - sub-playbook.yml        ......主机任务
  • hosts
# hosts
# 这里填写堡垒机分组名
[bastiongroup]
# 这里填写堡垒机ip
114.114.114.114
  • sub-hosts
# sub-hosts
# 这里填写内网主机分组名
[hostgroup]
# 这里填写内网主机ip
10.x.x.x
192.x.x.x
  • sub-playbook.yml
# sub-playbook.yml
- hosts: 
    - hostgroup
  tasks:
    # 复制工作空间下代码文件
    - name: copy
      copy:
        # 源路径
        src: /dir/to/
        # 目标路径
        dest: /dir/to/
    # 启动app
    - name: run app
    # go run xxx;pyhton run.py;java xxx
      shell: go run main.go   
  • playbook.yml
# playbook.yml
- hosts: 
    - bastiongroup
  tasks:
    # 复制工作空间下代码文件
    - name: copy
      copy:
        # 源路径
        src: ./
        # 目标路径
        dest: /dir/to/
    # ansible初始化
    - name: get ansible
      # 如报错可使用:ansible.builtin.yum
      ansible.builtin.dnf:
        name: ansible
        state: latest
    # 主机部署
    - name: start deploy
      shell: ansible-playbook sub-playbook.yml -i sub-hosts

# 更多用法