diff --git a/inventory/domain.east-west.dk b/inventory/domain.east-west.dk new file mode 100644 index 0000000..2666482 --- /dev/null +++ b/inventory/domain.east-west.dk @@ -0,0 +1,53 @@ +[dc] +dc01.domain.east-west.dk +dc02.domain.east-west.dk +dc03.domain.east-west.dk +dc05.domain.east-west.dk + +[hyperv] +hyperv-01.domain.east-west.dk +hyperv-02.domain.east-west.dk +hyperv-03.domain.east-west.dk +hyperv-04.domain.east-west.dk + +[dhcp] +dhcp01.domain.east-west.dk + +[web] +web02.domain.east-west.dk + +[vpn] +vpn02.domain.east-west.dk + +[mail] +mail01.domain.east-west.dk + +[kms] +kms01.domain.east-west.dk + +[backup] +nia-bac.domain.east-west.dk + +[taps_svv] +pri-svv-app.domain.east-west.dk +pri-svv-web.domain.east-west.dk +pri-svv-sql.domain.east-west.dk + +[servers:children] +hyperv +dhcp +web +vpn +mail +kms +backup +taps_svv + + +[all:vars] +ansible_ssh_user=svcansible@DOMAIN.EAST-WEST.DK +ansible_ssh_pass=4bUmP3ZgOE70WDmuMuS8WD3ZgOmuMuS8 +ansible_ssh_port=5985 +ansible_connection=winrm +#ansible_winrm_server_cert_validation=ignore +ansible_winrm_transport=kerberos diff --git a/inventory/rejtesta.v13.0.local b/inventory/rejtesta.v13.0.local new file mode 100644 index 0000000..55ad455 --- /dev/null +++ b/inventory/rejtesta.v13.0.local @@ -0,0 +1,206 @@ +[AOS] +rej-a-aos201.rejtesta.local AXInstall=AXInstall_130.87.0.0_130-87-0-0.exe +rej-a-aos202.rejtesta.local AXInstall=AXInstall_130.87.0.0_130-87-0-0.exe + +[AOS_POM] +rej-a-aos201.rejtesta.local + +[APP] +rej-a-app201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[API] +rej-a-api201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[BCM] +rej-a-bcm201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[BCM_CLUSTER] +rej-a-bcm201.rejtesta.local + +[DPS] +rej-a-dps201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[FAS] +rej-a-fas201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[INT] +rej-a-int201.rejtesta.local + +[MDL] +rej-a-mdl201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[RAD] +rej-a-rad201.rejtesta.local + +[REP] +rej-a-rep201.rejtesta.local + +[SPS] +rej-a-sps201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[SQL] +rej-a-sql201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[TCF] +rej-a-tcf201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[TCS] +rej-a-tcs201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[RED] +rej-a-red201.rejtesta.local + +[JMM] +rej-a-jmm201.rejtesta.local + +[SMC] +rej-a-smc201.rejtesta.local + +[WEB] +rej-a-web201.rejtesta.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[WEB_BO] +rej-a-web201.rejtesta.local + +[WEB_BORIS] +rej-a-web201.rejtesta.local + +[WEB_CWS] +rej-a-web201.rejtesta.local + +[SQL_AX] +rej-a-sql201.rejtesta.local connectionString="Data Source=REJ-A-SQL201,1501;Initial Catalog=AfcCookedIFSV2;user id=SvcIFSUser;password=EVEwdF37dqcTFA" + +[SQL_PDB] +rej-a-sql201.rejtesta.local connectionString="Data Source=REJ-A-SQL201,1501;Initial Catalog=AfcCookedIFSV2;user id=SvcIFSUser;password=EVEwdF37dqcTFA" + + +[Note_install:children] +APP +API +BCM +DPS +FAS +MDL +SPS +TCF +TCS +WEB +SQL +INT + + + +[Note_install:vars] +Note_install=npp.8.4.1.Installer.x64.exe + + +[AOS_Deploy_PostTravel_Test:children] +AOS_POM + +[AOS_Deploy_PostTravel_Test:vars] +AOS_Deploy_PostTravel_Test=TravelCardPostDeploy_Test.cmd + +[AOS_Deploy_TravelService:children] +AOS + +[AOS_Deploy_TravelService:vars] +AOS_Deploy_TravelService=TravelCardDeployTravelCardServices.cmd + + +[BOInstall:children] +APP +API +BCM +DPS +FAS +MDL +SPS +SQL +TCF +TCS +WEB + +[AxInstall:children] +AOS + +[IFSBO:children] +BCM +DPS +FAS +MDL +SPS +TCS + +[IIS:children] +APP +API +FAS +TCF +WEB + +[Windows:children] +AOS +APP +API +BCM +BCM_CLUSTER +DPS +FAS +INT +MDL +SPS +TCS +TCF +WEB +SQL_AX +SQL_PDB + +[ServersWithConfigs:children] +AOS +APP +API +BCM +DPS +FAS +MDL +SPS +SQL +INT +TCS +TCF +WEB + +[Windows:vars] +ansible_ssh_user=installserveruser@REJTESTA.LOCAL +ansible_ssh_pass=Bananheste2020 +ansible_ssh_port=5985 +ansible_connection=winrm +ansible_winrm_transport=kerberos + +[aos_admin] +rej-a-aos201.rejtesta.local + +[aos_admin:vars] +ansible_become=yes +ansible_become_method=runas +ansible_become_user=RejTestA\InstallServerUser +ansible_become_password=Bananheste2020 + + + + +[Linux:children] +RED +JMM +SMC + +[Linux:vars] +ansible_ssh_user=ewops +ansible_ssh_pass=Mju86ygv +ansible_connection=ssh + +[all:vars] +slack_token=T29V2V96J/B035GA42DGA/O7EJmyDcXx2ewX3x94iXMknT +configVersion=v13.0 +configName=rejtesta.local \ No newline at end of file diff --git a/inventory/rejtestc.local b/inventory/rejtestc.local new file mode 100644 index 0000000..57bf4d9 --- /dev/null +++ b/inventory/rejtestc.local @@ -0,0 +1,180 @@ +[AOS] +rej-c-aos301.rejtestc.local AXInstall=AXInstall_120.75.0.0_120-75-0-0.exe +rej-c-aos302.rejtestc.local AXInstall=AXInstall_120.75.0.0_120-75-0-0.exe + +[AOS_POM] +rej-c-aos301.rejtestc.local + +[APP] +rej-c-app301.rejtestc.local BOInstall=BOInstall_120.77.2.0_120-77-2-0.exe + +[API] +rej-c-api301.rejtestc.local BOInstall=BOInstall_120.77.2.0_120-77-2-0.exe + +[BCM] +rej-c-bcm301.rejtestc.local BOInstall=BOInstall_120.75.0.0_120-75-0-0.exe + +[BCM_CLUSTER] +rej-c-bcm301.rejtestc.local + +[DPS] +rej-c-dps301.rejtestc.local BOInstall=BOInstall_120.75.0.0_120-75-0-0.exe + +[FAS] +rej-c-fas301.rejtestc.local BOInstall=BOInstall_120.75.0.0_120-75-0-0.exe + +[INT] +rej-c-int301.rejtestc.local + +[MDL] +rej-c-mdl301.rejtestc.local BOInstall=BOInstall_120.75.0.0_120-75-0-0.exe + +[RAD] +rej-c-rad301.rejtestc.local + +[REP] +rej-c-rep301.rejtestc.local + +[SPS] +rej-c-sps301.rejtestc.local BOInstall=BOInstall_120.75.0.0_120-75-0-0.exe + +[SQL] +rej-c-sql301.rejtestc.local BOInstall=BOInstall_120.77.0.0_120-77-0-0.exe + +[TCF] +rej-c-tcf301.rejtestc.local BOInstall=BOInstall_120.73.0.0_120-73-0-0.exe + +[TCS] +rej-c-tcs301.rejtestc.local BOInstall=BOInstall_120.77.0.0_120-77-0-0.exe + +[RED] +rej-c-red301.rejtestc.local + +[JMM] +rej-c-jmm301.rejtestc.local + +[SMC] +rej-c-smc301.rejtestc.local + +[WEB] +rej-c-web301.rejtestc.local BOInstall=BOInstall_120.77.2.0_120-77-2-0.exe + +[WEB_BO] +rej-c-web301.rejtestc.local + +[WEB_BORIS] +rej-c-web301.rejtestc.local + +[WEB_CWS] +rej-c-web301.rejtestc.local + +[SQL_AX] +rej-c-sql301.rejtestc.local connectionString="Data Source=rej-c-SQL301,1501;Initial Catalog=AfcCookedIFSV2;user id=SvcIFSUser;password=EVEwdF37dqcTFA" + +[SQL_PDB] +rej-c-sql301.rejtestc.local connectionString="Data Source=rej-c-SQL301,1501;Initial Catalog=AfcCookedIFSV2;user id=SvcIFSUser;password=EVEwdF37dqcTFA" + + +[Note_install:children] +APP +API +BCM +DPS +FAS +MDL +SPS +TCF +TCS +WEB +SQL +INT + + + +[Note_install:vars] +Note_install=npp.8.4.1.Installer.x64.exe + +[BOInstall:children] +APP +API +BCM +DPS +FAS +MDL +SPS +SQL +TCF +TCS +WEB + +[AxInstall:children] +AOS + +[IFSBO:children] +BCM +DPS +FAS +MDL +SPS +TCS + +[IIS:children] +APP +API +FAS +TCF +WEB + +[Windows:children] +AOS +APP +API +BCM +BCM_CLUSTER +DPS +FAS +INT +MDL +SPS +TCS +TCF +WEB +SQL_AX +SQL_PDB + +[ServersWithConfigs:children] +AOS +APP +API +BCM +DPS +FAS +MDL +SPS +SQL +INT +TCS +TCF +WEB + +[Windows:vars] +ansible_ssh_user=installserveruser@REJTESTC.LOCAL +ansible_ssh_pass=Bananheste2020 +ansible_ssh_port=5985 +ansible_connection=winrm +ansible_winrm_transport=kerberos + +[Linux:children] +RED +JMM +SMC + +[Linux:vars] +ansible_ssh_user=ewops +ansible_ssh_pass=Mju86ygv +ansible_connection=ssh + +[all:vars] +slack_token=T29V2V96J/B035GA42DGA/O7EJmyDcXx2ewX3x94iXMknT +configVersion=v12.0 +configName=rejtestc.local \ No newline at end of file diff --git a/inventory/rejtestc.v13.0.local b/inventory/rejtestc.v13.0.local new file mode 100644 index 0000000..b14c54c --- /dev/null +++ b/inventory/rejtestc.v13.0.local @@ -0,0 +1,180 @@ +[AOS] +rej-c-aos301.rejtestc.local AXInstall=AXInstall_130.87.0.0_130-87-0-0.exe +rej-c-aos302.rejtestc.local AXInstall=AXInstall_130.87.0.0_130-87-0-0.exe + +[AOS_POM] +rej-c-aos301.rejtestc.local + +[APP] +rej-c-app301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[API] +rej-c-api301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[BCM] +rej-c-bcm301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[BCM_CLUSTER] +rej-c-bcm301.rejtestc.local + +[DPS] +rej-c-dps301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[FAS] +rej-c-fas301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[INT] +rej-c-int301.rejtestc.local + +[MDL] +rej-c-mdl301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[RAD] +rej-c-rad301.rejtestc.local + +[REP] +rej-c-rep301.rejtestc.local + +[SPS] +rej-c-sps301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[SQL] +rej-c-sql301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[TCF] +rej-c-tcf301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[TCS] +rej-c-tcs301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[RED] +rej-c-red301.rejtestc.local + +[JMM] +rej-c-jmm301.rejtestc.local + +[SMC] +rej-c-smc301.rejtestc.local + +[WEB] +rej-c-web301.rejtestc.local BOInstall=BOInstall_130.87.0.0_130-87-0-0.exe + +[WEB_BO] +rej-c-web301.rejtestc.local + +[WEB_BORIS] +rej-c-web301.rejtestc.local + +[WEB_CWS] +rej-c-web301.rejtestc.local + +[SQL_AX] +rej-c-sql301.rejtestc.local connectionString="Data Source=rej-c-SQL301,1501;Initial Catalog=AfcCookedIFSV2;user id=SvcIFSUser;password=EVEwdF37dqcTFA" + +[SQL_PDB] +rej-c-sql301.rejtestc.local connectionString="Data Source=rej-c-SQL301,1501;Initial Catalog=AfcCookedIFSV2;user id=SvcIFSUser;password=EVEwdF37dqcTFA" + + +[Note_install:children] +APP +API +BCM +DPS +FAS +MDL +SPS +TCF +TCS +WEB +SQL +INT + + + +[Note_install:vars] +Note_install=npp.8.4.1.Installer.x64.exe + +[BOInstall:children] +APP +API +BCM +DPS +FAS +MDL +SPS +SQL +TCF +TCS +WEB + +[AxInstall:children] +AOS + +[IFSBO:children] +BCM +DPS +FAS +MDL +SPS +TCS + +[IIS:children] +APP +API +FAS +TCF +WEB + +[Windows:children] +AOS +APP +API +BCM +BCM_CLUSTER +DPS +FAS +INT +MDL +SPS +TCS +TCF +WEB +SQL_AX +SQL_PDB + +[ServersWithConfigs:children] +AOS +APP +API +BCM +DPS +FAS +MDL +SPS +SQL +INT +TCS +TCF +WEB + +[Windows:vars] +ansible_ssh_user=installserveruser@REJTESTC.LOCAL +ansible_ssh_pass=Bananheste2020 +ansible_ssh_port=5985 +ansible_connection=winrm +ansible_winrm_transport=kerberos + +[Linux:children] +RED +JMM +SMC + +[Linux:vars] +ansible_ssh_user=ewops +ansible_ssh_pass=Mju86ygv +ansible_connection=ssh + +[all:vars] +slack_token=T29V2V96J/B035GA42DGA/O7EJmyDcXx2ewX3x94iXMknT +configVersion=v12.1 +configName=rejtestc.local \ No newline at end of file diff --git a/inventory/thalesgroup.local b/inventory/thalesgroup.local new file mode 100644 index 0000000..00b607c --- /dev/null +++ b/inventory/thalesgroup.local @@ -0,0 +1,25 @@ +[dc] +dc01.thalesgroup.local +dc02.thalesgroup.local +dc05-thales.thalesgroup.local + +[taps_prod] +pri-prod-app.thalesgroup.local +pri-prod-web.thalesgroup.local +pri-prod-sql.thalesgroup.local + +[adfs] +adfsproxy.thalesgroup.local + +[azuresync] +azuresync.thalesgroup.local + +[wds] +intwds.thalesgroup.local + +[fil] +pri-fil-01.thalesgroup.local + +[emm] +pri-emm-01.thalesgroup.local + diff --git a/playbooks/Clean_up.yaml b/playbooks/Clean_up.yaml new file mode 100644 index 0000000..f8ebcbe --- /dev/null +++ b/playbooks/Clean_up.yaml @@ -0,0 +1,29 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting playbook Clean-up_Task.yaml + +## Clean-up_Task +- name: Clean-up_Task + hosts: Note_install + gather_facts: false + tasks: + - block: + - include: tasks/Clean-up_Test.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/Import-ax-modelstore.yaml b/playbooks/Import-ax-modelstore.yaml new file mode 100644 index 0000000..a0e158c --- /dev/null +++ b/playbooks/Import-ax-modelstore.yaml @@ -0,0 +1,29 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting playbook install-axinstall-importmodel.yaml + +## install-axinstall-importmodel +- name: install-axinstall-importmodel + hosts: AOS_POM + gather_facts: false + tasks: + - block: + - include: tasks/install-axinstall-importmodel.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/ansible-krb-install.yaml b/playbooks/ansible-krb-install.yaml new file mode 100644 index 0000000..5d4e700 --- /dev/null +++ b/playbooks/ansible-krb-install.yaml @@ -0,0 +1,45 @@ +--- +# playbooks/winrm_kerberos.yml +# @version v1.00_2020-DEC-20 +# @author Kevin Jeffery + +- name: Install WinRM Kerberos Dependencies + hosts: localhost + tasks: + - name: Start + debug: + msg: "{{ ansible_date_time.date }} {{ ansible_date_time.time }}" + + - name: Install Required Packages - RedHat/CentOS + vars: + ansible_python_interpreter: /usr/bin/python2 + yum: + name: + - gcc + - python-devel + - python3-devel + - krb5-devel + - krb5-libs + - krb5-workstation + state: latest + update_cache: yes + become: yes + when: (ansible_os_family == "RedHat" or ansible_os_family == "CentOS") and ansible_distribution_version is version('8.0', 'lt') + + - name: Install Required Packages - Debian/Ubuntu + apt: + name: + - python-dev + - python3-dev + - libkrb5-dev + - krb5-user + state: latest + update_cache: yes + become: yes + when: ansible_os_family == "Debian" + + - name: Install python winrm wrapper + pip: + name: "pywinrm[kerberos]" + state: latest + become: yes diff --git a/playbooks/install-Bo_and_Ax.yaml b/playbooks/install-Bo_and_Ax.yaml new file mode 100644 index 0000000..a9f833b --- /dev/null +++ b/playbooks/install-Bo_and_Ax.yaml @@ -0,0 +1,77 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +## BOInstall +- name: Install BOInstall + hosts: BOInstall + gather_facts: false + tasks: + - block: + - include: tasks/install-boinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +## AxInstall +- name: Install AXInstall + hosts: AOS + gather_facts: false + tasks: + - block: + - include: tasks/install-axinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +## Post-installs + +# AXInstall example + +#- name: AXInstall Post-Installation tasks +# hosts: AOS_POM +# gather_facts: false +# tasks: +# - block: +# - include: tasks/install-axinstall-cilcompile.yaml +# rescue: +# - include: tasks/task-failed-slack.yaml + + +# BOInstall example + +#- name: Install PI46849_MDL +# hosts: MDL +# gather_facts: false +# tasks: +# - block: +# - include: tasks/install-PI46849_MDL.yaml +# rescue: +# - include: tasks/task-failed-slack.yaml + + +# PI46867_CWS_DBIFS_APP +# - Skip because default BOInstall is BOInstall_120.81.2.0_120-81-2-0.exe + +# PI46869_APP_API_BorisWeb +# - Skip because default BOInstall is BOInstall_120.81.2.0_120-81-2-0.exe + + + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/install-axinstall-new.yaml b/playbooks/install-axinstall-new.yaml new file mode 100644 index 0000000..aca9c14 --- /dev/null +++ b/playbooks/install-axinstall-new.yaml @@ -0,0 +1,97 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +## AxInstall install-axinstall +- name: Install AXInstall + hosts: AOS + gather_facts: false + tags: [install_axinstall] + tasks: + - block: + - include: tasks/install-axinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-importmodel +- name: install-axinstall-importmodel + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-importmodel.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-xppcompileall +- name: Install install-axinstall-xppcompileall + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-xppcompileall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-cilcompile +- name: Install install-axinstall-cilcompile + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-cilcompile.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-deployposttravelcardservices +- name: install-axinstall-deployposttravelcardservices + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-deployposttravelcardservices.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-TravelCardDeployTravelCardServices +- name: install-axinstall-TravelCardDeployTravelCardServices + hosts: AOS + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-TravelCardDeployTravelCardServices.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-sqlreindex.yaml +- name: install-axinstall-sqlreindex.yaml + hosts: SQL + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-sqlreindex.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: AX install all done diff --git a/playbooks/install-boinstall.yaml b/playbooks/install-boinstall.yaml new file mode 100644 index 0000000..5053193 --- /dev/null +++ b/playbooks/install-boinstall.yaml @@ -0,0 +1,30 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +## BOInstall +- name: Install BOInstall + hosts: BOInstall + gather_facts: false + tasks: + - block: + - include: tasks/install-boinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/install-boinstall_and_axinstall-new.yaml b/playbooks/install-boinstall_and_axinstall-new.yaml new file mode 100644 index 0000000..619d585 --- /dev/null +++ b/playbooks/install-boinstall_and_axinstall-new.yaml @@ -0,0 +1,108 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +## BOInstall +- name: Install BOInstall + hosts: BOInstall + gather_facts: false + tasks: + - block: + - include: tasks/install-boinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +## AxInstall install-axinstall +- name: Install AXInstall + hosts: AOS + gather_facts: false + tags: [install_axinstall] + tasks: + - block: + - include: tasks/install-axinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-importmodel +- name: install-axinstall-importmodel + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-importmodel.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-xppcompileall +- name: Install install-axinstall-xppcompileall + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-xppcompileall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-cilcompile +- name: Install install-axinstall-cilcompile + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-cilcompile.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-deployposttravelcardservices +- name: install-axinstall-deployposttravelcardservices + hosts: AOS_POM + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-deployposttravelcardservices.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-TravelCardDeployTravelCardServices +- name: install-axinstall-TravelCardDeployTravelCardServices + hosts: AOS + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-TravelCardDeployTravelCardServices.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +## AxInstall install-axinstall-sqlreindex.yaml +- name: install-axinstall-sqlreindex.yaml + hosts: SQL + gather_facts: false + serial: 1 + tasks: + - block: + - include: tasks/install-axinstall-sqlreindex.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: AX install all done diff --git a/playbooks/install-boinstall_and_axinstall.yaml b/playbooks/install-boinstall_and_axinstall.yaml new file mode 100644 index 0000000..a9f833b --- /dev/null +++ b/playbooks/install-boinstall_and_axinstall.yaml @@ -0,0 +1,77 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +## BOInstall +- name: Install BOInstall + hosts: BOInstall + gather_facts: false + tasks: + - block: + - include: tasks/install-boinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +## AxInstall +- name: Install AXInstall + hosts: AOS + gather_facts: false + tasks: + - block: + - include: tasks/install-axinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +## Post-installs + +# AXInstall example + +#- name: AXInstall Post-Installation tasks +# hosts: AOS_POM +# gather_facts: false +# tasks: +# - block: +# - include: tasks/install-axinstall-cilcompile.yaml +# rescue: +# - include: tasks/task-failed-slack.yaml + + +# BOInstall example + +#- name: Install PI46849_MDL +# hosts: MDL +# gather_facts: false +# tasks: +# - block: +# - include: tasks/install-PI46849_MDL.yaml +# rescue: +# - include: tasks/task-failed-slack.yaml + + +# PI46867_CWS_DBIFS_APP +# - Skip because default BOInstall is BOInstall_120.81.2.0_120-81-2-0.exe + +# PI46869_APP_API_BorisWeb +# - Skip because default BOInstall is BOInstall_120.81.2.0_120-81-2-0.exe + + + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/install-notepadplus.yaml b/playbooks/install-notepadplus.yaml new file mode 100644 index 0000000..4fec8eb --- /dev/null +++ b/playbooks/install-notepadplus.yaml @@ -0,0 +1,29 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting playbook install_note.yaml + +## install note +- name: install_note + hosts: Note_install + gather_facts: false + tasks: + - block: + - include: tasks/install-notepadplus.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/old/OLD_run-ax-Cilcompile.yaml b/playbooks/old/OLD_run-ax-Cilcompile.yaml new file mode 100644 index 0000000..698d2cc --- /dev/null +++ b/playbooks/old/OLD_run-ax-Cilcompile.yaml @@ -0,0 +1,29 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting playbook install-axinstall-cilcompile.yaml + +## install-axinstall-cilcompile +- name: install-axinstall-cilcompile + hosts: AOS_POM + gather_facts: false + tasks: + - block: + - include: tasks/install-axinstall-cilcompile.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/old/install-v12.0.yaml b/playbooks/old/install-v12.0.yaml new file mode 100644 index 0000000..a9f833b --- /dev/null +++ b/playbooks/old/install-v12.0.yaml @@ -0,0 +1,77 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +## BOInstall +- name: Install BOInstall + hosts: BOInstall + gather_facts: false + tasks: + - block: + - include: tasks/install-boinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +## AxInstall +- name: Install AXInstall + hosts: AOS + gather_facts: false + tasks: + - block: + - include: tasks/install-axinstall.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +## Post-installs + +# AXInstall example + +#- name: AXInstall Post-Installation tasks +# hosts: AOS_POM +# gather_facts: false +# tasks: +# - block: +# - include: tasks/install-axinstall-cilcompile.yaml +# rescue: +# - include: tasks/task-failed-slack.yaml + + +# BOInstall example + +#- name: Install PI46849_MDL +# hosts: MDL +# gather_facts: false +# tasks: +# - block: +# - include: tasks/install-PI46849_MDL.yaml +# rescue: +# - include: tasks/task-failed-slack.yaml + + +# PI46867_CWS_DBIFS_APP +# - Skip because default BOInstall is BOInstall_120.81.2.0_120-81-2-0.exe + +# PI46869_APP_API_BorisWeb +# - Skip because default BOInstall is BOInstall_120.81.2.0_120-81-2-0.exe + + + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/start-AX.yaml b/playbooks/start-AX.yaml new file mode 100644 index 0000000..a6733f0 --- /dev/null +++ b/playbooks/start-AX.yaml @@ -0,0 +1,29 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +- name: Start AOS + hosts: AOS + gather_facts: false + tasks: + - block: + - include: tasks/start-aos.yaml + rescue: + - include: tasks/task-failed-slack.yaml + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done \ No newline at end of file diff --git a/playbooks/start.yaml b/playbooks/start.yaml new file mode 100644 index 0000000..b15ce58 --- /dev/null +++ b/playbooks/start.yaml @@ -0,0 +1,84 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + + +- name: Start AOS + hosts: AOS + gather_facts: false + tasks: + - block: + - include: tasks/start-aos.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + + +- name: Start BCM_CLUSTER + hosts: BCM_CLUSTER + gather_facts: false + tasks: + - block: + - include: tasks/start-ifsbo.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + + +- name: Start APP + hosts: APP + gather_facts: false + tasks: + - block: + - include: tasks/start-iis.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Start DPS, FAS, MDL, SPS, TCS + hosts: DPS, FAS, MDL, SPS, TCS + gather_facts: false + tasks: + - block: + - include: tasks/start-ifsbo.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Start WEB, API + hosts: WEB, API + gather_facts: false + tasks: + - block: + - include: tasks/start-iis.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +#- name: Start Nagios +# hosts: SMC +# tasks: +# - name: podman start nagios +# command: podman start nagios + +# - name: podman start n2a +# command: podman start n2a + + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done \ No newline at end of file diff --git a/playbooks/stop-AX.yaml b/playbooks/stop-AX.yaml new file mode 100644 index 0000000..4d1c4fe --- /dev/null +++ b/playbooks/stop-AX.yaml @@ -0,0 +1,30 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +- name: Stop AOS + hosts: AOS + gather_facts: false + tasks: + - block: + - include: tasks/stop-aos.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/stop.yaml b/playbooks/stop.yaml new file mode 100644 index 0000000..ac3a03a --- /dev/null +++ b/playbooks/stop.yaml @@ -0,0 +1,81 @@ +--- +- name: Slack + hosts: localhost + gather_facts: false + vars: + playbook_file: "{{ (lookup('file', '/proc/self/cmdline') | regex_replace('\u0000',' ')).split() | select('match','^.*[.]ya?ml$') | list | first }}" + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: Starting {{ playbook_file }} + +#- name: Stop N2A +# hosts: SMC +# tasks: +# - name: podman stop n2a +# command: podman stop n2a + +# - name: podman stop nagios +# command: podman stop nagios + +- name: Stop WEB, API + hosts: WEB, API + gather_facts: false + tasks: + - block: + - include: tasks/stop-iis.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Stop DPS, FAS, MDL, SPS, TCS + hosts: DPS, FAS, MDL, SPS, TCS + gather_facts: false + tasks: + - block: + - include: tasks/stop-ifsbo.yaml + - include: tasks/reboot.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Stop APP + hosts: APP + gather_facts: false + tasks: + - block: + - include: tasks/stop-iis.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Stop BCM_CLUSTER + hosts: BCM_CLUSTER + gather_facts: false + tasks: + - block: + - include: tasks/stop-ifsbo.yaml + - include: tasks/reboot.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Stop AOS + hosts: AOS + gather_facts: false + tasks: + - block: + - include: tasks/stop-aos.yaml + rescue: + - include: tasks/task-failed-slack.yaml + + +- name: Slack + hosts: localhost + gather_facts: false + tasks: + - name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: All done diff --git a/playbooks/tasks/Clean-up_Test.yaml b/playbooks/tasks/Clean-up_Test.yaml new file mode 100644 index 0000000..515e2a3 --- /dev/null +++ b/playbooks/tasks/Clean-up_Test.yaml @@ -0,0 +1,21 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Running Clean-up on {{ inventory_hostname }} + +- name: Running Clean-up Scripts + ansible.windows.win_powershell: + script: | + #Script to Clean-up + + #Creating Directory + New-Item -Path 'D:\software\Archive' -ItemType Directory + + $Users = 'ThalesAdmin','Installserveruser' + + #Moving files to path (ThalesAdmin,Installserveruser) + foreach ($user in $Users) { + Get-ChildItem -Exclude *.lnk -Path "C:\Users\$user\Desktop\" -Recurse | Move-Item -Verbose -Force -Destination "D:\software\Archive" + } \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/install-PI43972_CWS.yaml b/playbooks/tasks/Postinstalls/install-PI43972_CWS.yaml new file mode 100644 index 0000000..1f1dd2a --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI43972_CWS.yaml @@ -0,0 +1,18 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43972 (CWS) on {{ inventory_hostname }} + +- name: Copy _BaseLayout.cshtml + win_copy: + src: ~/ansible/install/PostInstalls/PI43972_CWS/_BaseLayout.cshtml + dest: D:\IFSBOSystem\WebSite\CWS\Views\Shared\ + backup: yes + +- name: Copy Renew.cshtml + win_copy: + src: ~/ansible/install/PostInstalls/PI43972_CWS/Renew.cshtml + dest: D:\IFSBOSystem\WebSite\CWS\Views\SeasonPass\ + backup: yes diff --git a/playbooks/tasks/Postinstalls/install-PI43976_CWS.yaml b/playbooks/tasks/Postinstalls/install-PI43976_CWS.yaml new file mode 100644 index 0000000..cff3b5c --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI43976_CWS.yaml @@ -0,0 +1,18 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43976 (CWS) on {{ inventory_hostname }} + +- name: Copy ui-icons_444444_256x240.png + win_copy: + src: ~/ansible/install/PostInstalls/PI43976_CWSWEB/ui-icons_444444_256x240.png + dest: D:\IFSBOSystem\WebSite\CWS\App_Themes\CWS\images\ + backup: yes + +- name: Copy ui-icons_555555_256x240.png + win_copy: + src: ~/ansible/install/PostInstalls/PI43976_CWSWEB/ui-icons_555555_256x240.png + dest: D:\IFSBOSystem\WebSite\CWS\App_Themes\CWS\images\ + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/install-PI43980_CWS.yaml b/playbooks/tasks/Postinstalls/install-PI43980_CWS.yaml new file mode 100644 index 0000000..f6e3e96 --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI43980_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43980 (CWS) on {{ inventory_hostname }} + +- name: Copy CWSDictionary.xml + win_copy: + src: ~/ansible/install/PostInstalls/PI43980_DBIFS_CWSWEB/CWSDictionary.xml + dest: D:\IFSBOSystem\WebSite\CWS\App_Data\CWSDictionary.xml + backup: yes diff --git a/playbooks/tasks/Postinstalls/install-PI43981_CWS.yaml b/playbooks/tasks/Postinstalls/install-PI43981_CWS.yaml new file mode 100644 index 0000000..67e8b47 --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI43981_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43981 (CWS) on {{ inventory_hostname }} + +- name: Copy CWS.dll + win_copy: + src: ~/ansible/install/PostInstalls/PI43981_CWSWEB/CWS.dll + dest: D:\IFSBOSystem\WebSite\CWS\bin\ + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/install-PI46769_CWS.yaml b/playbooks/tasks/Postinstalls/install-PI46769_CWS.yaml new file mode 100644 index 0000000..e016b14 --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI46769_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46769 (CWS) on {{ inventory_hostname }} + +- name: Copy CWS.dll + win_copy: + src: ~/ansible/install/PostInstalls/PI46769_CWSWEB/CWS.dll + dest: D:\IFSBOSystem\WebSite\CWS\bin\ + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/install-PI46777_CWS.yaml b/playbooks/tasks/Postinstalls/install-PI46777_CWS.yaml new file mode 100644 index 0000000..5b2066d --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI46777_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46777 (CWS) on {{ inventory_hostname }} + +- name: Copy MyInformation.cshtml + win_copy: + src: ~/ansible/install/PostInstalls/PI46777_CWSWEB/MyInformation.cshtml + dest: D:\IFSBOSystem\WebSite\CWS\Views\CustomerManagement\MyInformation.cshtml + backup: yes diff --git a/playbooks/tasks/Postinstalls/install-PI46792_MDL.yaml b/playbooks/tasks/Postinstalls/install-PI46792_MDL.yaml new file mode 100644 index 0000000..60c73f6 --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI46792_MDL.yaml @@ -0,0 +1,21 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46792 (MDL) on {{ inventory_hostname }} + +- name: Copy DCP_CMNDeEncoder_P.dll + win_copy: + src: ~/ansible/install/PostInstalls/PI46792_MDL/DCP_CMNDeEncoder_P.dll + dest: D:\IFSBOSystem\bin\DCP_CMNDeEncoder_P.dll + backup: yes + +- name: Copy Register_DCP_CMNDeEncoder_P_FileProcessor.bat + win_copy: + src: ~/ansible/install/PostInstalls/PI46792_MDL/Register_DCP_CMNDeEncoder_P_FileProcessor.bat + dest: D:\IFSBOSystem\bin\Register_DCP_CMNDeEncoder_P_FileProcessor.bat + backup: yes + +- name: Register dll + win_command: D:\IFSBOSystem\bin\Register_DCP_CMNDeEncoder_P_FileProcessor.bat \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/install-PI46810_BORIS.yaml b/playbooks/tasks/Postinstalls/install-PI46810_BORIS.yaml new file mode 100644 index 0000000..0faa4df --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI46810_BORIS.yaml @@ -0,0 +1,11 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46810 (BORIS) on {{ inventory_hostname }} +- name: Copy BorisDictionary.xml + win_copy: + src: ~/ansible/install/PostInstalls/PI46810_DBIFS_CWSWEB_BORISWEB/BorisDictionary.xml + dest: D:\IFSBOSystem\WebSite\Boris\App_Data\BorisDictionary.xml + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/install-PI46810_CWS.yaml b/playbooks/tasks/Postinstalls/install-PI46810_CWS.yaml new file mode 100644 index 0000000..3dc4eee --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI46810_CWS.yaml @@ -0,0 +1,11 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46810 (CWS) on {{ inventory_hostname }} +- name: Copy CWSDictionary.xml + win_copy: + src: ~/ansible/install/PostInstalls/PI46810_DBIFS_CWSWEB_BORISWEB/CWSDictionary.xml + dest: D:\IFSBOSystem\WebSite\CWS\App_Data\CWSDictionary.xml + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/install-PI46838.yaml b/playbooks/tasks/Postinstalls/install-PI46838.yaml new file mode 100644 index 0000000..01bbd72 --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI46838.yaml @@ -0,0 +1,50 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Ax service on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: started + start_mode: auto + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Xpo import PI46838 {{ inventory_hostname }} + +- name: Run Ax32.exe CIL compile + ansible.windows.win_powershell: + script: | + iex "cmd /c 'D:\Program Files (x86)\Microsoft Dynamics AX\60\Client\bin\Ax32.exe' -aotImportFile=D:\software\PI46838_AXPOM_REP\PI46838.xpo" + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting CIL compile on {{ inventory_hostname }} + +- name: Run Ax32.exe CIL compile + ansible.windows.win_powershell: + script: | + iex "cmd /c 'D:\Program Files (x86)\Microsoft Dynamics AX\60\Client\bin\Ax32.exe' -startupcmd=CompileIL" + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Stopping Ax service on {{ inventory_hostname }} + +- name: Stop Ax service + ansible.windows.win_service: + name: "aos60$01" + state: stopped + start_mode: auto diff --git a/playbooks/tasks/Postinstalls/install-PI46849_MDL.yaml b/playbooks/tasks/Postinstalls/install-PI46849_MDL.yaml new file mode 100644 index 0000000..3aa11c8 --- /dev/null +++ b/playbooks/tasks/Postinstalls/install-PI46849_MDL.yaml @@ -0,0 +1,19 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46849_MDL on {{ inventory_hostname }} + + +- name: Stop Housekeeping Agent + ansible.windows.win_service: + name: IFSHouseKeepingAgent + state: stopped + + +- name: Copy IFS.HouseKeeping.Agent.exe + win_copy: + src: ~/ansible/install/PostInstalls/PI46849_MDL/IFS.HouseKeeping.Agent.exe + dest: D:\IFSBOSystem\bin\IFS.HouseKeeping.Agent.exe + backup: yes diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI43972_CWS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI43972_CWS.yaml new file mode 100644 index 0000000..1f1dd2a --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI43972_CWS.yaml @@ -0,0 +1,18 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43972 (CWS) on {{ inventory_hostname }} + +- name: Copy _BaseLayout.cshtml + win_copy: + src: ~/ansible/install/PostInstalls/PI43972_CWS/_BaseLayout.cshtml + dest: D:\IFSBOSystem\WebSite\CWS\Views\Shared\ + backup: yes + +- name: Copy Renew.cshtml + win_copy: + src: ~/ansible/install/PostInstalls/PI43972_CWS/Renew.cshtml + dest: D:\IFSBOSystem\WebSite\CWS\Views\SeasonPass\ + backup: yes diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI43976_CWS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI43976_CWS.yaml new file mode 100644 index 0000000..cff3b5c --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI43976_CWS.yaml @@ -0,0 +1,18 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43976 (CWS) on {{ inventory_hostname }} + +- name: Copy ui-icons_444444_256x240.png + win_copy: + src: ~/ansible/install/PostInstalls/PI43976_CWSWEB/ui-icons_444444_256x240.png + dest: D:\IFSBOSystem\WebSite\CWS\App_Themes\CWS\images\ + backup: yes + +- name: Copy ui-icons_555555_256x240.png + win_copy: + src: ~/ansible/install/PostInstalls/PI43976_CWSWEB/ui-icons_555555_256x240.png + dest: D:\IFSBOSystem\WebSite\CWS\App_Themes\CWS\images\ + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI43980_CWS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI43980_CWS.yaml new file mode 100644 index 0000000..f6e3e96 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI43980_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43980 (CWS) on {{ inventory_hostname }} + +- name: Copy CWSDictionary.xml + win_copy: + src: ~/ansible/install/PostInstalls/PI43980_DBIFS_CWSWEB/CWSDictionary.xml + dest: D:\IFSBOSystem\WebSite\CWS\App_Data\CWSDictionary.xml + backup: yes diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI43981_CWS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI43981_CWS.yaml new file mode 100644 index 0000000..67e8b47 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI43981_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI43981 (CWS) on {{ inventory_hostname }} + +- name: Copy CWS.dll + win_copy: + src: ~/ansible/install/PostInstalls/PI43981_CWSWEB/CWS.dll + dest: D:\IFSBOSystem\WebSite\CWS\bin\ + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI46769_CWS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI46769_CWS.yaml new file mode 100644 index 0000000..e016b14 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI46769_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46769 (CWS) on {{ inventory_hostname }} + +- name: Copy CWS.dll + win_copy: + src: ~/ansible/install/PostInstalls/PI46769_CWSWEB/CWS.dll + dest: D:\IFSBOSystem\WebSite\CWS\bin\ + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI46777_CWS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI46777_CWS.yaml new file mode 100644 index 0000000..5b2066d --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI46777_CWS.yaml @@ -0,0 +1,12 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46777 (CWS) on {{ inventory_hostname }} + +- name: Copy MyInformation.cshtml + win_copy: + src: ~/ansible/install/PostInstalls/PI46777_CWSWEB/MyInformation.cshtml + dest: D:\IFSBOSystem\WebSite\CWS\Views\CustomerManagement\MyInformation.cshtml + backup: yes diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI46792_MDL.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI46792_MDL.yaml new file mode 100644 index 0000000..60c73f6 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI46792_MDL.yaml @@ -0,0 +1,21 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46792 (MDL) on {{ inventory_hostname }} + +- name: Copy DCP_CMNDeEncoder_P.dll + win_copy: + src: ~/ansible/install/PostInstalls/PI46792_MDL/DCP_CMNDeEncoder_P.dll + dest: D:\IFSBOSystem\bin\DCP_CMNDeEncoder_P.dll + backup: yes + +- name: Copy Register_DCP_CMNDeEncoder_P_FileProcessor.bat + win_copy: + src: ~/ansible/install/PostInstalls/PI46792_MDL/Register_DCP_CMNDeEncoder_P_FileProcessor.bat + dest: D:\IFSBOSystem\bin\Register_DCP_CMNDeEncoder_P_FileProcessor.bat + backup: yes + +- name: Register dll + win_command: D:\IFSBOSystem\bin\Register_DCP_CMNDeEncoder_P_FileProcessor.bat \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI46810_BORIS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI46810_BORIS.yaml new file mode 100644 index 0000000..0faa4df --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI46810_BORIS.yaml @@ -0,0 +1,11 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46810 (BORIS) on {{ inventory_hostname }} +- name: Copy BorisDictionary.xml + win_copy: + src: ~/ansible/install/PostInstalls/PI46810_DBIFS_CWSWEB_BORISWEB/BorisDictionary.xml + dest: D:\IFSBOSystem\WebSite\Boris\App_Data\BorisDictionary.xml + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI46810_CWS.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI46810_CWS.yaml new file mode 100644 index 0000000..3dc4eee --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI46810_CWS.yaml @@ -0,0 +1,11 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46810 (CWS) on {{ inventory_hostname }} +- name: Copy CWSDictionary.xml + win_copy: + src: ~/ansible/install/PostInstalls/PI46810_DBIFS_CWSWEB_BORISWEB/CWSDictionary.xml + dest: D:\IFSBOSystem\WebSite\CWS\App_Data\CWSDictionary.xml + backup: yes \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI46838.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI46838.yaml new file mode 100644 index 0000000..01bbd72 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI46838.yaml @@ -0,0 +1,50 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Ax service on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: started + start_mode: auto + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Xpo import PI46838 {{ inventory_hostname }} + +- name: Run Ax32.exe CIL compile + ansible.windows.win_powershell: + script: | + iex "cmd /c 'D:\Program Files (x86)\Microsoft Dynamics AX\60\Client\bin\Ax32.exe' -aotImportFile=D:\software\PI46838_AXPOM_REP\PI46838.xpo" + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting CIL compile on {{ inventory_hostname }} + +- name: Run Ax32.exe CIL compile + ansible.windows.win_powershell: + script: | + iex "cmd /c 'D:\Program Files (x86)\Microsoft Dynamics AX\60\Client\bin\Ax32.exe' -startupcmd=CompileIL" + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Stopping Ax service on {{ inventory_hostname }} + +- name: Stop Ax service + ansible.windows.win_service: + name: "aos60$01" + state: stopped + start_mode: auto diff --git a/playbooks/tasks/Postinstalls/v.12/install-PI46849_MDL.yaml b/playbooks/tasks/Postinstalls/v.12/install-PI46849_MDL.yaml new file mode 100644 index 0000000..3aa11c8 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-PI46849_MDL.yaml @@ -0,0 +1,19 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Installing PI46849_MDL on {{ inventory_hostname }} + + +- name: Stop Housekeeping Agent + ansible.windows.win_service: + name: IFSHouseKeepingAgent + state: stopped + + +- name: Copy IFS.HouseKeeping.Agent.exe + win_copy: + src: ~/ansible/install/PostInstalls/PI46849_MDL/IFS.HouseKeeping.Agent.exe + dest: D:\IFSBOSystem\bin\IFS.HouseKeeping.Agent.exe + backup: yes diff --git a/playbooks/tasks/Postinstalls/v.12/install-axinstall-v12.0-TestA.yaml b/playbooks/tasks/Postinstalls/v.12/install-axinstall-v12.0-TestA.yaml new file mode 100644 index 0000000..df8f0da --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-axinstall-v12.0-TestA.yaml @@ -0,0 +1,81 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Copying AXInstall files to {{ inventory_hostname }} + +- name: Prepare install target + ansible.windows.win_file: + path: D:\AXInstall + state: directory + +- name: Copy {{AXInstall}} + win_copy: + src: ~/ansible/install/{{AXInstall}} + dest: D:\AXInstall\{{AXInstall}} + +- name: Copy Config + win_copy: + src: ~/ansible/install/config/v12.0/rejtesta.local/{{ inventory_hostname.split('.')[0]|upper }}/ + dest: D:\AXInstall\Config + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting AXInstall on {{ inventory_hostname }} + +- name: Run {{AXInstall}} + ansible.windows.win_powershell: + script: | + iex "cmd /c D:\AXInstall\{{AXInstall}} /PlatFormFilesPath=D:\AXInstall\Config /ForceReboot=False /S" + Start-Sleep -Seconds 30 + Get-Process AXInstall | Wait-Process + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Checking final errorstatus 0 on {{ inventory_hostname }} + +- name: Final errorstatus + ansible.windows.win_powershell: + script: | + $newestLog = Get-Item D:\IFSAXSystem\InstallLog\AXInstall_*.log | Sort LastWriteTime -Descending | Select-Object -First 1 + $result = $newestLog | Select-String -Pattern 'The final errorstatus is ([0-9]+)' + if($result.Matches[0].Groups[1].Value -ne 0) { + $Ansible.Failed = $true + } + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Rebooting {{ inventory_hostname }} + +- name: Reboot + win_reboot: + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Cleaning up AXInstall files on {{ inventory_hostname }} + +- name: Clean up + ansible.windows.win_file: + path: D:\AXInstall + state: absent \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-axinstall-v12.0-TestC.yaml b/playbooks/tasks/Postinstalls/v.12/install-axinstall-v12.0-TestC.yaml new file mode 100644 index 0000000..e2f35e4 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-axinstall-v12.0-TestC.yaml @@ -0,0 +1,81 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Copying AXInstall files to {{ inventory_hostname }} + +- name: Prepare install target + ansible.windows.win_file: + path: D:\AXInstall + state: directory + +- name: Copy {{AXInstall}} + win_copy: + src: ~/ansible/install/{{AXInstall}} + dest: D:\AXInstall\{{AXInstall}} + +- name: Copy Config + win_copy: + src: ~/ansible/install/config/v12.0/rejtestc.local/{{ inventory_hostname.split('.')[0]|upper }}/ + dest: D:\AXInstall\Config + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting AXInstall on {{ inventory_hostname }} + +- name: Run {{AXInstall}} + ansible.windows.win_powershell: + script: | + iex "cmd /c D:\AXInstall\{{AXInstall}} /PlatFormFilesPath=D:\AXInstall\Config /ForceReboot=False /S" + Start-Sleep -Seconds 30 + Get-Process AXInstall | Wait-Process + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Checking final errorstatus 0 on {{ inventory_hostname }} + +- name: Final errorstatus + ansible.windows.win_powershell: + script: | + $newestLog = Get-Item D:\IFSAXSystem\InstallLog\AXInstall_*.log | Sort LastWriteTime -Descending | Select-Object -First 1 + $result = $newestLog | Select-String -Pattern 'The final errorstatus is ([0-9]+)' + if($result.Matches[0].Groups[1].Value -ne 0) { + $Ansible.Failed = $true + } + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Rebooting {{ inventory_hostname }} + +- name: Reboot + win_reboot: + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Cleaning up AXInstall files on {{ inventory_hostname }} + +- name: Clean up + ansible.windows.win_file: + path: D:\AXInstall + state: absent \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0-TestA.yaml b/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0-TestA.yaml new file mode 100644 index 0000000..c264d81 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0-TestA.yaml @@ -0,0 +1,89 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Copying BOInstall files to {{ inventory_hostname }} + +- name: Prepare install target + ansible.windows.win_file: + path: D:\BOInstall + state: directory + +- name: Copy BOInstall + win_copy: + src: ~/ansible/install/{{BOInstall}} + dest: D:\BOInstall\{{BOInstall}} + +- name: Copy Config + win_copy: + src: ~/ansible/install/config/v12.0/rejtesta.local/{{ inventory_hostname.split('.')[0]|upper }}/ + dest: D:\BOInstall\Config + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting BOInstall on {{ inventory_hostname }} + +- name: Run BOInstall + ansible.windows.win_powershell: + script: | + iex "cmd /c D:\BOInstall\{{BOInstall}} /PlatFormFilesPath=D:\BOInstall\Config /ForceReboot=False /S" + Start-Sleep -Seconds 30 + Get-Process BOInstall | Wait-Process + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Checking final errorstatus 0 on {{ inventory_hostname }} + +- name: Final errorstatus + ansible.windows.win_powershell: + script: | + $newestLog = Get-Item D:\IFSBOSystem\InstallLog\BOInstall_*.log | Sort LastWriteTime -Descending | Select-Object -First 1 + $result = $newestLog | Select-String -Pattern 'The final errorstatus is ([0-9]+)' + if($result.Matches[0].Groups[1].Value -ne 0) { + $Ansible.Failed = $true + } + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Running fixlog4net on {{ inventory_hostname }} + +- name: Copy fixlog4net + win_copy: + src: ~/ansible/install/fixlog4net.ps1 + dest: D:\BOInstall\fixlog4net.ps1 + +- name: Run fixlog4net + ansible.windows.win_powershell: + script: | + D:\BOInstall\fixlog4net.ps1 + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Rebooting {{ inventory_hostname }} + +- name: Reboot + win_reboot: + +- name: Clean up + ansible.windows.win_file: + path: D:\BOInstall + state: absent \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0-TestC.yaml b/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0-TestC.yaml new file mode 100644 index 0000000..58e93f4 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0-TestC.yaml @@ -0,0 +1,89 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Copying BOInstall files to {{ inventory_hostname }} + +- name: Prepare install target + ansible.windows.win_file: + path: D:\BOInstall + state: directory + +- name: Copy BOInstall + win_copy: + src: ~/ansible/install/{{BOInstall}} + dest: D:\BOInstall\{{BOInstall}} + +- name: Copy Config + win_copy: + src: ~/ansible/install/config/v12.0/rejtestc.local/{{ inventory_hostname.split('.')[0]|upper }}/ + dest: D:\BOInstall\Config + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting BOInstall on {{ inventory_hostname }} + +- name: Run BOInstall + ansible.windows.win_powershell: + script: | + iex "cmd /c D:\BOInstall\{{BOInstall}} /PlatFormFilesPath=D:\BOInstall\Config /ForceReboot=False /S" + Start-Sleep -Seconds 30 + Get-Process BOInstall | Wait-Process + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Checking final errorstatus 0 on {{ inventory_hostname }} + +- name: Final errorstatus + ansible.windows.win_powershell: + script: | + $newestLog = Get-Item D:\IFSBOSystem\InstallLog\BOInstall_*.log | Sort LastWriteTime -Descending | Select-Object -First 1 + $result = $newestLog | Select-String -Pattern 'The final errorstatus is ([0-9]+)' + if($result.Matches[0].Groups[1].Value -ne 0) { + $Ansible.Failed = $true + } + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Running fixlog4net on {{ inventory_hostname }} + +- name: Copy fixlog4net + win_copy: + src: ~/ansible/install/fixlog4net.ps1 + dest: D:\BOInstall\fixlog4net.ps1 + +- name: Run fixlog4net + ansible.windows.win_powershell: + script: | + D:\BOInstall\fixlog4net.ps1 + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Rebooting {{ inventory_hostname }} + +- name: Reboot + win_reboot: + +- name: Clean up + ansible.windows.win_file: + path: D:\BOInstall + state: absent \ No newline at end of file diff --git a/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0_HF.yaml b/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0_HF.yaml new file mode 100644 index 0000000..c264d81 --- /dev/null +++ b/playbooks/tasks/Postinstalls/v.12/install-boinstall-v12.0_HF.yaml @@ -0,0 +1,89 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Copying BOInstall files to {{ inventory_hostname }} + +- name: Prepare install target + ansible.windows.win_file: + path: D:\BOInstall + state: directory + +- name: Copy BOInstall + win_copy: + src: ~/ansible/install/{{BOInstall}} + dest: D:\BOInstall\{{BOInstall}} + +- name: Copy Config + win_copy: + src: ~/ansible/install/config/v12.0/rejtesta.local/{{ inventory_hostname.split('.')[0]|upper }}/ + dest: D:\BOInstall\Config + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting BOInstall on {{ inventory_hostname }} + +- name: Run BOInstall + ansible.windows.win_powershell: + script: | + iex "cmd /c D:\BOInstall\{{BOInstall}} /PlatFormFilesPath=D:\BOInstall\Config /ForceReboot=False /S" + Start-Sleep -Seconds 30 + Get-Process BOInstall | Wait-Process + + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Checking final errorstatus 0 on {{ inventory_hostname }} + +- name: Final errorstatus + ansible.windows.win_powershell: + script: | + $newestLog = Get-Item D:\IFSBOSystem\InstallLog\BOInstall_*.log | Sort LastWriteTime -Descending | Select-Object -First 1 + $result = $newestLog | Select-String -Pattern 'The final errorstatus is ([0-9]+)' + if($result.Matches[0].Groups[1].Value -ne 0) { + $Ansible.Failed = $true + } + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Running fixlog4net on {{ inventory_hostname }} + +- name: Copy fixlog4net + win_copy: + src: ~/ansible/install/fixlog4net.ps1 + dest: D:\BOInstall\fixlog4net.ps1 + +- name: Run fixlog4net + ansible.windows.win_powershell: + script: | + D:\BOInstall\fixlog4net.ps1 + + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Rebooting {{ inventory_hostname }} + +- name: Reboot + win_reboot: + +- name: Clean up + ansible.windows.win_file: + path: D:\BOInstall + state: absent \ No newline at end of file diff --git a/playbooks/tasks/grab-config.yaml b/playbooks/tasks/grab-config.yaml new file mode 100644 index 0000000..6341874 --- /dev/null +++ b/playbooks/tasks/grab-config.yaml @@ -0,0 +1,19 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Grabbing config from {{ inventory_hostname }} + +- name: Prepare install target + ansible.windows.win_file: + path: D:\BackUp_Config + state: directory + +- name: Copy grab_config.cmd + win_copy: + src: ~/ansible/install/grab_config.cmd + dest: D:\BackUp_Config\grab_config.cmd + +- name: Run grab_config + win_command: D:\BackUp_Config\grab_config.cmd {{epoch}} \ No newline at end of file diff --git a/playbooks/tasks/install-axinstall-TravelCardDeployTravelCardServices.yaml b/playbooks/tasks/install-axinstall-TravelCardDeployTravelCardServices.yaml new file mode 100644 index 0000000..9f68622 --- /dev/null +++ b/playbooks/tasks/install-axinstall-TravelCardDeployTravelCardServices.yaml @@ -0,0 +1,36 @@ +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Deploying TravelCard Services on {{ inventory_hostname }} + +- name: Copy TravelCardDeployTravelCardServices script + win_copy: + src: ~/ansible/install/{{AOS_Deploy_TravelService}} + dest: D:\software\TravelCardDeployTravelCardServices.cmd + +- name: Run TravelCardDeployTravelCardServices script + win_command: cmd.exe /c "cd /d D:\software && call TravelCardDeployTravelCardServices.cmd" + register: script_result + changed_when: false + failed_when: "'Execution of TravelCardDeployTravelCardServices done' not in script_result.stdout" + +- name: Send notification message via Slack + community.general.slack: + token: "{{ slack_token }}" + msg: "Deployed TravelCard Services on {{ inventory_hostname }} : {{ 'Success' if script_result else 'Failed' }}" + when: script_result is defined + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: stopping AX on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: stopped + start_mode: auto + + diff --git a/playbooks/tasks/install-axinstall-cilcompile.yaml b/playbooks/tasks/install-axinstall-cilcompile.yaml new file mode 100644 index 0000000..0ef323f --- /dev/null +++ b/playbooks/tasks/install-axinstall-cilcompile.yaml @@ -0,0 +1,112 @@ +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Ax service on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: started + start_mode: auto + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting CIL compile on {{ inventory_hostname }} + + +#- name: Compile CIL using Invoke-AxaptaServerCmd +# ansible.windows.win_shell: | +# $null = . 'D:\Program Files\Microsoft Dynamics AX\60\ManagementUtilities\Microsoft.Dynamics.ManagementUtilities.ps1' +# $AOSInstanceName = (Get-WmiObject -Class "MicrosoftDynamicsAX|InstalledAOSInstances" -Namespace "root\MicrosoftDynamicsAX").InstanceName +# $output = Invoke-AxaptaServerCmd -Server $AOSInstanceName -Command "CompileIL" +# register: cil_compile_output +# tags: +# - ax_compile_cil + +- name: Compile CIL using AX32.exe + win_shell: | + $startupCmd = "-startupcmd=CompileIL" + $createDesktopA = @" + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr CreateDesktopA(string lpszDesktop, IntPtr lpszDevice, IntPtr pDevmode, uint dwFlags, uint dwDesiredAccess, IntPtr lpsa); + "@ + Add-Type -MemberDefinition $createDesktopA -Name "NativeMethods" -Namespace "Win32" + $desktop = [Win32.NativeMethods]::CreateDesktopA("CustomDesktop", [IntPtr]::Zero, [IntPtr]::Zero, 0, 0x10000000, [IntPtr]::Zero) + $job = Start-Job -ScriptBlock {Start-Process -FilePath "ax32.exe" -ArgumentList "-startupcmd=CompileIL" -Wait} + Wait-Job $job + register: cil_compile_output + tags: + - ax_compile_cil + +- name: Check CIL compilation result + win_shell: | + $logFilePath = "D:\Program Files\Microsoft Dynamics AX\60\Server\TravelCardDynamicsAX\bin\XppIL\Dynamics.Ax.Application.dll.log" + if (Test-Path $logFilePath) { + $logContent = Get-Content $logFilePath -Raw -Encoding UTF8 + $errors = Select-String -Path $logFilePath -Pattern "Error" + $warnings = Select-String -Path $logFilePath -Pattern "Warning" + if ($logContent -match "Finished creating types.") { + Write-Output "CIL compilation succeeded." + Write-Host "Number of Errors: $($errors.Line)" + Write-Host "Number of Warnings: $($warnings.Line)" + } else {Write-Output "CIL compilation failed." + } + } + else { + Write-Output "Log file not found." + } + register: cil_compile_output + tags: + - ax_compile_cil + + +- name: Send CIL compilation result notification via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: | + CIL compilation result for {{ inventory_hostname }}: + {{ cil_compile_output.stdout_lines}} + tags: + - ax_compile_cil + + + + +#- name: Show CIL compilation result +# ansible.builtin.debug: +# var: cil_compile_output.stdout_lines +# tags: +# - ax_compile_cil +# +#- name: Send CIL compilation result notification via Slack +# delegate_to: localhost +# community.general.slack: +# token: "{{ slack_token }}" +# msg: | +# CIL compilation result for {{ inventory_hostname }}: +# {% if cil_compile_output.stdout_lines %} +# {% for line in cil_compile_output.stdout_lines %} +# {{ line }} +# {% endfor %} +# {% else %} +# No output received. +# {% endif %} +# tags: +# - ax_compile_cil + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Stopping Ax service on {{ inventory_hostname }} + +- name: Stop Ax service + ansible.windows.win_service: + name: "aos60$01" + state: stopped + start_mode: auto diff --git a/playbooks/tasks/install-axinstall-deployposttravelcardservices.yaml b/playbooks/tasks/install-axinstall-deployposttravelcardservices.yaml new file mode 100644 index 0000000..6e4dd94 --- /dev/null +++ b/playbooks/tasks/install-axinstall-deployposttravelcardservices.yaml @@ -0,0 +1,62 @@ +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Deploying TravelCard Services on {{ inventory_hostname }} + +- name: Copy TravelCardPostDeploy script + win_copy: + src: ~/ansible/install/{{AOS_Deploy_PostTravel_Test}} + dest: D:\software\TravelCardPostDeploy.cmd + +- name: Run TravelCardPostDeploy script + win_command: cmd.exe /c "cd /d D:\software && call TravelCardPostDeploy.cmd" + register: script_result + changed_when: false + failed_when: "'Execution of TravelCardPostDeploy done' not in script_result.stdout" + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: "Deployed TravelCard Services on {{ inventory_hostname }} : {{ 'Success' if script_result else 'Failed' }}" + when: script_result is defined and script_result.stdout is defined + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: restaring AX on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: restarted + start_mode: manual + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: starting AX on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: started + start_mode: manual + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: stopping AX on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: stopped + start_mode: auto + + diff --git a/playbooks/tasks/install-axinstall-importmodel.yaml b/playbooks/tasks/install-axinstall-importmodel.yaml new file mode 100644 index 0000000..373dedc --- /dev/null +++ b/playbooks/tasks/install-axinstall-importmodel.yaml @@ -0,0 +1,95 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Ax service on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: started + start_mode: manual + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Model import {{ inventory_hostname }} + +- name: Import TravelCardDynamicsAX.axmodel + ansible.windows.win_shell: | + $null = . 'D:\Program Files\Microsoft Dynamics AX\60\ManagementUtilities\Microsoft.Dynamics.ManagementUtilities.ps1' + $capture = axutil import /file:D:\IFSAXSystem\Tools\Model\TravelCardDynamicsAX.axmodel /noprompt /conflict:overwrite + $capture -match "was successfully imported" + become: true + register: import_output + tags: + - ax_import + +- name: Display import_output + debug: + var: import_output.stdout + tags: + - ax_import + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: "Model import done on {{ inventory_hostname }}: {{ import_output.stdout }}" + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: setting no install mode on {{ inventory_hostname }} + +- name: Run Dynamics.ManagementUtilities.ps1 - no install mode + ansible.windows.win_powershell: + script: | + $null = . 'D:\Program Files\Microsoft Dynamics AX\60\ManagementUtilities\Microsoft.Dynamics.ManagementUtilities.ps1' + $capture = axutil set /noInstallMode + $capture -match "successfully applied" + register: output + failed_when: "'The NoInstallMode has been successfully applied.' not in output.output" + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: "no install mode set on {{ inventory_hostname }} : {{output.output}}" + + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: get travelCard Version on {{ inventory_hostname }} + +- name: Get TravelCard version + ansible.windows.win_powershell: + script: | + $output = & 'D:\Program Files\Microsoft Dynamics AX\60\ManagementUtilities\Microsoft.Dynamics.ManagementUtilities.ps1' | axutil list + $travelCardLine = ($output -split "`n" | Select-String -Pattern "TravelCard ").Line + $travelCardLineClean = $travelCardLine -replace '.*?(?=TravelCard)', '' + Write-Output $travelCardLineClean + register: travel_card_version + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: "TravelCard Version on {{ inventory_hostname }}: {{ travel_card_version.output }}" + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Stopping Ax service on {{ inventory_hostname }} + +- name: Stop Ax service + ansible.windows.win_service: + name: "aos60$01" + state: stopped + start_mode: manual diff --git a/playbooks/tasks/install-axinstall-sqlreindex.yaml b/playbooks/tasks/install-axinstall-sqlreindex.yaml new file mode 100644 index 0000000..4a50fd2 --- /dev/null +++ b/playbooks/tasks/install-axinstall-sqlreindex.yaml @@ -0,0 +1,26 @@ +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Running XU_Reindex and XU_ResetHandleIdentity on {{ inventory_hostname }} + +- name: Execute SQL commands on the TravelCardDynamicsAX database + ansible.windows.win_shell: | + Import-Module SqlServer + $server = "{{ inventory_hostname }}" + $database = "TravelCardDynamicsAX" + $query1 = "exec XU_Reindex" + $query2 = "exec XU_ResetHandleIdentity" + + Invoke-Sqlcmd -ServerInstance $server -Database $database -Query $query1 + Invoke-Sqlcmd -ServerInstance $server -Database $database -Query $query2 + register: sql_result + tags: + - sql_commands + delegate_to: "{{ groups['SQL'][0] }}" + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Done running XU_Reindex and XU_ResetHandleIdentity on {{ inventory_hostname }} \ No newline at end of file diff --git a/playbooks/tasks/install-axinstall-xppcompileall.yaml b/playbooks/tasks/install-axinstall-xppcompileall.yaml new file mode 100644 index 0000000..6c3a5ed --- /dev/null +++ b/playbooks/tasks/install-axinstall-xppcompileall.yaml @@ -0,0 +1,103 @@ +--- +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Starting Ax service on {{ inventory_hostname }} + +- name: Start Ax service + ansible.windows.win_service: + name: "aos60$01" + state: started + start_mode: manual + +- name: Send notification message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: Synchronize database {{ inventory_hostname }} + +- name: Execute ax32.exe with –startupcmd=synchronize_dbonly using CreateDesktopA function + win_shell: | + $startupCmd = "-startupcmd=synchronize_dbonly" + $createDesktopA = @" + [DllImport("user32.dll", SetLastError = true)] + public static extern IntPtr CreateDesktopA(string lpszDesktop, IntPtr lpszDevice, IntPtr pDevmode, uint dwFlags, uint dwDesiredAccess, IntPtr lpsa); + "@ + Add-Type -MemberDefinition $createDesktopA -Name "NativeMethods" -Namespace "Win32" + $desktop = [Win32.NativeMethods]::CreateDesktopA("CustomDesktop", [IntPtr]::Zero, [IntPtr]::Zero, 0, 0x10000000, [IntPtr]::Zero) + Start-Process -FilePath "ax32.exe" -ArgumentList $startupCmd -Wait + register: result + +- name: Verify synchronization + win_shell: Get-EventLog -LogName Application -Source "Dynamics Server 01" -After (Get-Date).Date | Where-Object {$_.Source -eq "Dynamics Server 01" -and $_.Message -like "*Sync finished*"} + register: event_log_result + +- name: Show verification result + debug: + var: event_log_result.stdout_lines + +- name: Send DB sync status via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: "{% if event_log_result.stdout_lines %}:white_check_mark: Database synchronization on {{ inventory_hostname }} completed successfully.{% else %}:x: Database synchronization on {{ inventory_hostname }} failed with exit code {{ event_log_result.rc }}.{% endif %}" + +- name: Send xpp_compile start message via Slack + delegate_to: localhost + community.general.slack: + token: "{{ slack_token }}" + msg: "Starting xppcompileall on {{ inventory_hostname }}" + + +- name: xppcompileall AX + ansible.windows.win_shell: | + $binPath = "D:\Program Files\Microsoft Dynamics AX\60\Server\TravelCardDynamicsAX\bin" + $axBuildPath = "$binPath\AXBuild.exe" + Set-Location -Path $binPath + & $axBuildPath xppcompileall /s=01 /v + $logFilePath = "D:\Program Files\Microsoft Dynamics AX\60\Server\TravelCardDynamicsAX\Log\AxCompileAll.html" + $logContent = Get-Content -Path $logFilePath -Raw + $errorCount = [regex]::Match($logContent, '