Skip to content

Latest commit

 

History

History
265 lines (221 loc) · 13.6 KB

File metadata and controls

265 lines (221 loc) · 13.6 KB

📃 Role overview

bootstrap

Role belongs to infra/openshift_virtualization_migration
Namespace - infra
Collection - openshift_virtualization_migration
Version - 1.25.0
Repository - https://github.com/redhat-cop/openshift_virtualization_migration

Description: Initialization of the Ansible for OpenShift Virtualization Migration environment.

Defaults

These are static variables with lower priority

File: defaults/main.yml

Var Type Value Choices Required Title
bootstrap_aap_license_manifest str `` None false Location of the AAP license manifest file
bootstrap_aap_setup_inst_verbosity int 1 None false Level from 0 - 5 for verbosity
bootstrap_aap_setup_working_dir str /home/ansible/bootstrap_dir None true Working direcotry on the bootstrap host
bootstrap_aap_version str {{ aap_version ¦ default(2.6) }} None false Bootstrap AAP Version
bootstrap_controller_hostname str {{ controller_hostname ¦ default(ansible_host) }} None false Bootstrap controller hostname
bootstrap_controller_password str {{ controller_password }} None true The admin password for the controller
bootstrap_controller_username str admin None false Bootstrap controller username
bootstrap_controller_validate_certs str {{ controller_validate_certs ¦ default(false) }} None false Validate Controller SSL certificates
bootstrap_license_file_submission_delay int 10 None True License File Submission Delay
bootstrap_license_file_submission_retries int 25 None True License File Submission Retries
bootstrap_public_keys list [] None false Add a list of SSH public keys to be added to authorized_keys on the bootstrap VM
bootstrap_rh_client_id str {{ rh_client_id }} None false Red Hat Service Account Client ID
bootstrap_rh_client_secret str {{ rh_client_secret }} None false Red Hat Service Account Client Secret
bootstrap_rh_filter_product_name str Red Hat Ansible Automation Platform None false Red Hat subscription product name
bootstrap_rh_filter_support_level str Self-Support None false Red Hat subscription support level
bootstrap_rh_password str {{ rh_password }} None true Red Hat account password
bootstrap_rh_subscription_id str `` None true Red Hat subscription ID
bootstrap_rh_username str {{ rh_username }} None true Red Hat account login (this is used to attach your subs to controller)
bootstrap_user str ansible None true This is the bootstrap user with sudo that should already exist on the bootsrap host
🖇️ Full descriptions for vars in defaults/main.yml
`bootstrap_aap_license_manifest`: None
`bootstrap_aap_setup_inst_verbosity`: None
`bootstrap_aap_setup_working_dir`: None
`bootstrap_aap_version`: None
`bootstrap_controller_hostname`: None
`bootstrap_controller_password`: None
`bootstrap_controller_username`: None
`bootstrap_controller_validate_certs`: None
`bootstrap_license_file_submission_delay`: None
`bootstrap_license_file_submission_retries`: None
`bootstrap_public_keys`: None
`bootstrap_rh_client_id`: None
`bootstrap_rh_client_secret`: None
`bootstrap_rh_filter_product_name`: None
`bootstrap_rh_filter_support_level`: None
`bootstrap_rh_password`: None
`bootstrap_rh_subscription_id`: None
`bootstrap_rh_username`: None
`bootstrap_user`: None

Tasks

File: tasks/main.yml

Name Module Has Conditions
Subscribe AAP ansible.builtin.include_tasks False

File: tasks/aap_subscription.yml

Name Module Has Conditions
aap_subscription ¦ Get subscriptions with a filter block True
aap_subscription ¦ Query Subscription ansible.controller.subscriptions False
aap_subscription ¦ Set subscription ID based on bootstrap_subscription ansible.builtin.set_fact False
aap_subscription ¦ Attach to a subscription ansible.controller.license False
aap_subscription ¦ Verify License Manifest Exists block True
aap_subscription ¦ Check if license file exists ansible.builtin.stat False
aap_subscription ¦ Verify license file exists ansible.builtin.assert False
aap_subscription ¦ Read the License file ansible.builtin.slurp False
aap_subscription ¦ Apply license to AAP ansible.builtin.uri False

File: tasks/create_mf_aap_token.yml

Name Module Has Conditions
create_mf_aap_token ¦ Create API key for Migration Factory AAP redhat.openshift.k8s False
create_mf_aap_token ¦ Retrieve Migration Factory AAP Service Account API key kubernetes.core.k8s_info False
create_mf_aap_token ¦ Set fact with Service Account API key ansible.builtin.set_fact False
create_mf_aap_token ¦ Print Migration Factory AAP Service Account API key ansible.builtin.debug False

File: tasks/prep.yml

Name Module Has Conditions
prep ¦ Register to Red Hat with provided credentials community.general.redhat_subscription False
prep ¦ Setup new user ansible.builtin.user False
prep ¦ Allow passwordless sudo for '{{ bootstrap_user }}' ansible.builtin.copy False
prep ¦ Create SSH folder ansible.builtin.file False
prep ¦ Generate an OpenSSH keypair with the default values community.crypto.openssh_keypair False
prep ¦ Set authorized key taken from file ansible.posix.authorized_key False
prep ¦ Set SSH config for this host to enable automated install ansible.builtin.copy False
prep ¦ Create working directory ansible.builtin.file False

Task Flow Graphs

Graph for aap_subscription.yml

flowchart TD
Start
classDef block stroke:#3498db,stroke-width:2px;
classDef task stroke:#4b76bb,stroke-width:2px;
classDef includeTasks stroke:#16a085,stroke-width:2px;
classDef importTasks stroke:#34495e,stroke-width:2px;
classDef includeRole stroke:#2980b9,stroke-width:2px;
classDef importRole stroke:#699ba7,stroke-width:2px;
classDef includeVars stroke:#8e44ad,stroke-width:2px;
classDef rescue stroke:#665352,stroke-width:2px;

  Start-->|Block Start| aap_subscription___Get_subscriptions_with_a_filter0_block_start_0[[aap subscription   get subscriptions with a filter<br>When: **bootstrap rh subscription id   default     true   <br>trim   length    0 and bootstrap aap license<br>manifest   default     true    trim   length    0**]]:::block
  aap_subscription___Get_subscriptions_with_a_filter0_block_start_0-->|Task| aap_subscription___Query_Subscription0[aap subscription   query subscription]:::task
  aap_subscription___Query_Subscription0-->|Task| aap_subscription___Set_subscription_ID_based_on_bootstrap_subscription1[aap subscription   set subscription id based on<br>bootstrap subscription]:::task
  aap_subscription___Set_subscription_ID_based_on_bootstrap_subscription1-->|Task| aap_subscription___Attach_to_a_subscription2[aap subscription   attach to a subscription]:::task
  aap_subscription___Attach_to_a_subscription2-.->|End of Block| aap_subscription___Get_subscriptions_with_a_filter0_block_start_0
  aap_subscription___Attach_to_a_subscription2-->|Block Start| aap_subscription___Verify_License_Manifest_Exists1_block_start_0[[aap subscription   verify license manifest exists<br>When: **bootstrap aap license manifest   default     true <br>  trim   length   0**]]:::block
  aap_subscription___Verify_License_Manifest_Exists1_block_start_0-->|Task| aap_subscription___Check_if_license_file_exists0[aap subscription   check if license file exists]:::task
  aap_subscription___Check_if_license_file_exists0-->|Task| aap_subscription___Verify_license_file_exists1[aap subscription   verify license file exists]:::task
  aap_subscription___Verify_license_file_exists1-->|Task| aap_subscription___Read_the_License_file2[aap subscription   read the license file]:::task
  aap_subscription___Read_the_License_file2-->|Task| aap_subscription___Apply_license_to_AAP3[aap subscription   apply license to aap]:::task
  aap_subscription___Apply_license_to_AAP3-.->|End of Block| aap_subscription___Verify_License_Manifest_Exists1_block_start_0
  aap_subscription___Apply_license_to_AAP3-->End
Loading

Graph for create_mf_aap_token.yml

flowchart TD
Start
classDef block stroke:#3498db,stroke-width:2px;
classDef task stroke:#4b76bb,stroke-width:2px;
classDef includeTasks stroke:#16a085,stroke-width:2px;
classDef importTasks stroke:#34495e,stroke-width:2px;
classDef includeRole stroke:#2980b9,stroke-width:2px;
classDef importRole stroke:#699ba7,stroke-width:2px;
classDef includeVars stroke:#8e44ad,stroke-width:2px;
classDef rescue stroke:#665352,stroke-width:2px;

  Start-->|Task| create_mf_aap_token___Create_API_key_for_Migration_Factory_AAP0[create mf aap token   create api key for migration<br>factory aap]:::task
  create_mf_aap_token___Create_API_key_for_Migration_Factory_AAP0-->|Task| create_mf_aap_token___Retrieve_Migration_Factory_AAP_Service_Account_API_key1[create mf aap token   retrieve migration factory<br>aap service account api key]:::task
  create_mf_aap_token___Retrieve_Migration_Factory_AAP_Service_Account_API_key1-->|Task| create_mf_aap_token___Set_fact_with_Service_Account_API_key2[create mf aap token   set fact with service<br>account api key]:::task
  create_mf_aap_token___Set_fact_with_Service_Account_API_key2-->|Task| create_mf_aap_token___Print_Migration_Factory_AAP_Service_Account_API_key3[create mf aap token   print migration factory aap<br>service account api key]:::task
  create_mf_aap_token___Print_Migration_Factory_AAP_Service_Account_API_key3-->End
Loading

Graph for main.yml

flowchart TD
Start
classDef block stroke:#3498db,stroke-width:2px;
classDef task stroke:#4b76bb,stroke-width:2px;
classDef includeTasks stroke:#16a085,stroke-width:2px;
classDef importTasks stroke:#34495e,stroke-width:2px;
classDef includeRole stroke:#2980b9,stroke-width:2px;
classDef importRole stroke:#699ba7,stroke-width:2px;
classDef includeVars stroke:#8e44ad,stroke-width:2px;
classDef rescue stroke:#665352,stroke-width:2px;

  Start-->|Include task| Subscribe_AAP_aap_subscription_yml_0[subscribe aap<br>include_task: aap subscription yml]:::includeTasks
  Subscribe_AAP_aap_subscription_yml_0-->End
Loading

Graph for prep.yml

flowchart TD
Start
classDef block stroke:#3498db,stroke-width:2px;
classDef task stroke:#4b76bb,stroke-width:2px;
classDef includeTasks stroke:#16a085,stroke-width:2px;
classDef importTasks stroke:#34495e,stroke-width:2px;
classDef includeRole stroke:#2980b9,stroke-width:2px;
classDef importRole stroke:#699ba7,stroke-width:2px;
classDef includeVars stroke:#8e44ad,stroke-width:2px;
classDef rescue stroke:#665352,stroke-width:2px;

  Start-->|Task| prep___Register_to_Red_Hat_with_provided_credentials0[prep   register to red hat with provided<br>credentials]:::task
  prep___Register_to_Red_Hat_with_provided_credentials0-->|Task| prep___Setup_new_user1[prep   setup new user]:::task
  prep___Setup_new_user1-->|Task| prep___Allow_passwordless_sudo_for__bootstrap_user_2[prep   allow passwordless sudo for  bootstrap user<br>]:::task
  prep___Allow_passwordless_sudo_for__bootstrap_user_2-->|Task| prep___Create_SSH_folder3[prep   create ssh folder]:::task
  prep___Create_SSH_folder3-->|Task| prep___Generate_an_OpenSSH_keypair_with_the_default_values4[prep   generate an openssh keypair with the<br>default values]:::task
  prep___Generate_an_OpenSSH_keypair_with_the_default_values4-->|Task| prep___Set_authorized_key_taken_from_file5[prep   set authorized key taken from file]:::task
  prep___Set_authorized_key_taken_from_file5-->|Task| prep___Set_SSH_config_for_this_host_to_enable_automated_install6[prep   set ssh config for this host to enable<br>automated install]:::task
  prep___Set_SSH_config_for_this_host_to_enable_automated_install6-->|Task| prep___Create_working_directory7[prep   create working directory]:::task
  prep___Create_working_directory7-->End
Loading

Playbook

---
- name: Test
  hosts: localhost
  remote_user: root
  roles:
    - bootstrap
...

Playbook graph

flowchart TD
  hosts[localhost]-->|Role| bootstrap[bootstrap]
Loading

Author Information

OpenShift Virtualization Migration Contributors

License

GPL-3.0-only

Minimum Ansible Version

2.15.0

Platforms

No platforms specified.