6. create an Ansible inventory file hosts with the below content:
localhost ansible_connection=local (this line is added so that Ansible can provision local machine)
testserver ansible_host=testsrv ansible_user=vagrant

(Assume ‘testsrv’ is the hostname you add in your /etc/hosts file, if you didn’t add a hostname for the target server, then use its ip instead)

7. Run the following command to make sure Ansible can talk to both local and remote machine
ansible all -i hosts -m ping

The reason is you didn’t set up your private/public key properly, for example, if you try ssh username@remotehost, it will ask you for password, to fix it, follow the steps below (from: https://www.howtogeek.com/tips/bypass-ssh-logins-by-adding-your-key-to-a-remote-server-in-a-single-command/)

If you want to setup SSH keys to allow logging in without a password, you can do so with a single command. It’s quite easy.

The first thing you’ll need to do is make sure you’ve run the keygen command to generate the keys (if you have already generated keys, skip this step).

ssh-keygen -t rsa

Then use this command to push the key to the remote server, modifying it to match your server user name and host name.

You’ll have to enter your password the first time to copy the keys. After that, you should be able to login without a password, or even use scp or rsync without entering a password. You can test with this command:

# All Vagrant configuration is done below. The “2” in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don’t change it unless you know what
# you’re doing.
Vagrant.configure(“2”) do |config|
# The most common configuration options are documented and commented below.
# For a complete reference, please see the online documentation at
# https://docs.vagrantup.com.

# Every Vagrant development environment requires a box. You can search for
# boxes at https://atlas.hashicorp.com/search.
config.vm.box = “bento/centos-7.2”
config.vm.synced_folder “d:/software/dev_tools/BPM/bpm4.0/TIB_amx-bpm_4.0.0_linux24gl23_x86_64”, “/vagrant/bpm_install”
config.vm.synced_folder “d:/software/dev_tools/BPM/EMS8.2.2”, “/vagrant/ems_install”
config.vm.synced_folder “d:/software/dev_tools/oracle/12c/linux64/database”, “/vagrant/oracle_install”
# Disable automatic box update checking. If you disable this, then
# boxes will only be checked for updates when the user runs
# `vagrant box outdated`. This is not recommended.
# config.vm.box_check_update = false

# Create a forwarded port mapping which allows access to a specific port
# within the machine from a port on the host machine. In the example below,
# accessing “localhost:8080” will access port 80 on the guest machine.
# config.vm.network “forwarded_port”, guest: 80, host: 8080

# Create a public network, which generally matched to bridged network.
# Bridged networks make the machine appear as another physical device on
# your network.
config.vm.network “public_network”

# Share an additional folder to the guest VM. The first argument is
# the path on the host to the actual folder. The second argument is
# the path on the guest to mount the folder. And the optional third
# argument is a set of non-required options.
# config.vm.synced_folder “../data”, “/vagrant_data”

# Provider-specific configuration so you can fine-tune various
# backing providers for Vagrant. These expose provider-specific options.
# Example for VirtualBox:
#
config.vm.provider “virtualbox” do |vb|
vb.memory = “6144”
end

#
# View the documentation for the provider you are using for more
# information on available options.

# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies
# such as FTP and Heroku are also available. See the documentation at
# https://docs.vagrantup.com/v2/push/atlas.html for more information.
# config.push.define “atlas” do |push|
# push.app = “YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME”
# end

# Enable provisioning with a shell script. Additional provisioners such as
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the
# documentation for more information about their specific syntax and use.
config.vm.provision “initialize”, type: “shell”, path: “scripts/initialize.sh”

You need to install 32bit library support on 64bit centos
1. sudo yum install glibc.i686
2. Copy the TIBCOUniversalInstaller-ems.silent file and rename the file.
3. Using a text editor, open the copied file and update the install location and features to install.
4. Run the installer using this command line:
TIBCOUniversalInstaller -silent -V responseFile=”myfilename.silent”

If you are using the TIBCOUniversalInstaller-ems.silent file (rather than a copy), you need not supply the file name and can use this command line:
TIBCOUniversalInstaller -silent.

<!– The root installation directory –>
<!– If the product does not support multiple instances and TIBCO_HOME has already been set then –>
<!– this value is ignored and the existing TIBCO_HOME is used as the installation root. –>
<entry key=”installationRoot”>/opt/tibco</entry>

<!– If using an existing environment then the installationRoot AND environmentName MUST match a pre-existing environment. –>
<!– If creating a new environment then the installationRoot AND environmentName MUST BE UNIQUE and not match a pre-existing environment. –>
<entry key=”environmentName”>TIBCO-HOME</entry>
<!– This only needs to be used for the macos power platform. –>
<entry key=”environmentDesc”>my installation</entry>

<!– configDirectoryRoot – location of configuration files if it does not already exist –>
<entry key=”configDirectoryRoot”>/home/user/tibco</entry>

<!– The following configuration parameters control the download of Hibernate –>
<!– LGPLAssemblyLicenseAccepted – true or false to accept the license –>
<!– LGPLAssemblyDownload – true or false to download the assembly from the public TIBCO server –>
<!– LGPLAssemblyPath – if LGPLAssemblyDownload is false, this is the path where the Hibernate assembly is located on the system –>
<entry key=”LGPLAssemblyLicenseAccepted”>true</entry>
<entry key=”LGPLAssemblyDownload”>true</entry>
<entry key=”LGPLAssemblyPath”>/opt/tibco/thirdpartyDownload</entry>

<!– Product-specific properties can be set below using the same ‘entry key=’ format as above. –>
<!– ONLY applicable for Windows platforms: –>
<!– manualRB – values can be true or false –>
<!– autoRB – values can be true or false –>
<!– Only one can be true, the default will be manual. –>
<entry key=”manualRB”>true</entry>
<entry key=”autoRB”>false</entry>
<entry key=”setUID”>false</entry>
<!– configFile – values can be the default value or a file that already exists –>
<!– If an invalid value is added, the default value will be used –>
<entry key=”configFile”>/home/user/tibco/cfgmgmt/ems/data/tibemsd.conf</entry>
</properties>

[Note: if the database wasn’t started, you need to check the /etc/oratab to see if the third field is set to ‘N’. If so, the database will be ignored by dbstart and you need to manually change it to ‘Y’.]