You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
324 lines
8.0 KiB
324 lines
8.0 KiB
#
|
|
# More details on how to use DECORT Ansible module can be found at:
|
|
# https://github.com/rudecs/decort-ansible/wiki
|
|
#
|
|
|
|
- hosts: ansible_master
|
|
vars_files:
|
|
- vars.yaml
|
|
tasks:
|
|
- name: obtain JWT
|
|
decort_jwt:
|
|
oauth2_url: "{{ decort_sso }}"
|
|
validity: 1200
|
|
register: token
|
|
delegate_to: localhost
|
|
|
|
- name: obtain OS image
|
|
decort_osimage:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
image_name: "{{ os_image_name }}"
|
|
account_name: "{{ target_account_name }}"
|
|
verify_ssl: false
|
|
register: my_image
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_image.facts
|
|
delegate_to: localhost
|
|
|
|
- name: manage RG
|
|
decort_rg:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
account_id: 32
|
|
rg_name: "{{ target_rg_name }}"
|
|
state: present
|
|
verify_ssl: false
|
|
register: my_rg
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_rg.facts
|
|
delegate_to: localhost
|
|
|
|
- name: manage ViNS 01
|
|
decort_vins:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
vins_name: "{{ vins01_name }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
ext_net_id: "{{ target_ext_net_id }}"
|
|
state: present
|
|
verify_ssl: false
|
|
register: my_vins01
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_vins01.facts
|
|
delegate_to: localhost
|
|
|
|
- name: manage ViNS 02
|
|
decort_vins:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
vins_name: "{{ vins02_name }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
ext_net_id: -1
|
|
state: present
|
|
verify_ssl: false
|
|
register: my_vins02
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_vins02.facts
|
|
delegate_to: localhost
|
|
|
|
- name: manage data disk 01
|
|
decort_disk:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
name: "{{ datadisk01_name }}"
|
|
size: "{{ datadisk01_size }}"
|
|
account_name: "{{ target_account_name }}"
|
|
pool: data01
|
|
place_with: "{{ my_image.facts.id }}"
|
|
state: present
|
|
verify_ssl: false
|
|
register: my_disk01
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_disk01.facts
|
|
delegate_to: localhost
|
|
|
|
- name: manage data disk 02
|
|
decort_disk:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
name: "{{ datadisk02_name }}"
|
|
size: "{{ datadisk02_size }}"
|
|
account_name: "{{ target_account_name }}"
|
|
pool: data01
|
|
place_with: "{{ my_image.facts.id }}"
|
|
state: present
|
|
verify_ssl: false
|
|
register: my_disk02
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_disk02.facts
|
|
delegate_to: localhost
|
|
|
|
- name: manage KVM X86 VM
|
|
decort_kvmvm:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
name: "{{ vm01_name }}"
|
|
arch: KVM_X86
|
|
ram: "{{ vm01_ram }}"
|
|
cpu: "{{ vm01_cpu }}"
|
|
image_id: "{{ my_image.facts.id }}"
|
|
boot_disk: "{{ vm01_boot_disk }}"
|
|
data_disks:
|
|
- "{{ my_disk01.facts.id }}"
|
|
- "{{ my_disk02.facts.id }}"
|
|
networks:
|
|
- type: VINS
|
|
id: "{{ my_vins01.facts.id }}"
|
|
- type: VINS
|
|
id: "{{ my_vins02.facts.id }}"
|
|
- type: EXTNET
|
|
id: "{{ target_ext_net_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
state: present
|
|
verify_ssl: false
|
|
register: my_kvmvm
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_kvmvm.facts
|
|
delegate_to: localhost
|
|
|
|
- name: manage PFW rules on Compute
|
|
decort_pfw:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
oauth2_url: "{{ decort_sso }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
compute_id: "{{ my_kvmvm.facts.id }}"
|
|
vins_id: "{{ my_vins01.facts.id }}"
|
|
rules:
|
|
- public_port_start: 30022
|
|
local_port: 22
|
|
proto: tcp
|
|
- public_port_start: 30080
|
|
public_port_end: 30085
|
|
local_port: 30080
|
|
proto: tcp
|
|
state: present
|
|
verify_ssl: false
|
|
register: my_pfw
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: my_pfw.facts
|
|
delegate_to: localhost
|
|
|
|
- name: Create k8s cluster with params
|
|
decort_k8s:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
k8s_name: "k8s_cluster_name"
|
|
wg_name: "k8s_wg_name"
|
|
k8ci_id: "{{ k8ci_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
master_count: 1
|
|
master_cpu: 2
|
|
master_ram_mb: 2048
|
|
master_disk_gb: 20
|
|
worker_count: 3
|
|
worker_cpu: 1
|
|
worker_ram_mb: 1024
|
|
worker_disk_gb: 20
|
|
extnet_id: "{{ target_ext_net_id }}"
|
|
with_lb: True
|
|
state: present
|
|
register: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: Disable k8s cluster
|
|
decort_k8s:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
k8s_name: "k8s_cluster_name"
|
|
wg_name: "k8s_wg_name"
|
|
k8ci_id: "{{ k8ci_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
state: disabled
|
|
register: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: Delete in trash k8s cluster
|
|
decort_k8s:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
k8s_name: "k8s_cluster_name"
|
|
wg_name: "k8s_wg_name"
|
|
k8ci_id: "{{ k8ci_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
state: absent
|
|
permanent: False
|
|
register: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: Restore from trash deleted k8s cluster
|
|
decort_k8s:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
k8s_name: "k8s_cluster_name"
|
|
wg_name: "k8s_wg_name"
|
|
k8ci_id: "{{ k8ci_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
state: enabled
|
|
register: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: Enable k8s cluster
|
|
decort_k8s:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
k8s_name: "k8s_cluster_name"
|
|
wg_name: "k8s_wg_name"
|
|
k8ci_id: "{{ k8ci_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
state: enabled
|
|
register: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: Enable k8s cluster
|
|
decort_k8s:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
k8s_name: "k8s_cluster_name"
|
|
wg_name: "k8s_wg_name"
|
|
k8ci_id: "{{ k8ci_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
state: enabled
|
|
started: True
|
|
register: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: Destroy k8s cluster
|
|
decort_k8s:
|
|
authenticator: jwt
|
|
jwt: "{{ token.jwt }}"
|
|
controller_url: "{{ decort_ctrl }}"
|
|
k8s_name: "k8s_cluster_name"
|
|
wg_name: "k8s_wg_name"
|
|
k8ci_id: "{{ k8ci_id }}"
|
|
rg_id: "{{ my_rg.facts.id }}"
|
|
state: absent
|
|
permanent: True
|
|
register: k8s
|
|
delegate_to: localhost
|
|
|
|
- name: print out the result
|
|
debug:
|
|
var: k8s
|
|
delegate_to: localhost
|