Instructions for the AppDynamics Pro amis



Download 65.77 Kb.
Date08.01.2017
Size65.77 Kb.
#7617
TypeInstructions
Usage Instructions for the AppDynamics Pro AMIs
There are 2 Amazon Machine Images (AMIs) for AppDynamics Pro. Users who wish to buy AppDynamics Pro should launch an instance using one of AMIs listed below:



  1. AMI ID:

ami-06ed316f


AMI Name:

AD-Pro-Linux-32bit-AMI


Description:

32 bit Linux AMI for AppDynamics Pro 


  1. AMI ID:

ami-faea3693


AMI Name:

AD-Pro-Linux-64bit-AMI


Description:

64 bit Linux AMI for AppDynamics Pro




Launching instances for the AppDynamics Pro AMIs

While selecting the parameters for launch, users should choose the Instance Type as c1.medium and create a new key pair unless one already exists for that user. 


Once the instance is running, the user may ssh into the new instance using:

1. The DNS name for that instance


2. the .pem (key pair) file from above 
3. the user ec2-user as shown below.
prantadas# ssh -i ~/pranta-keypair2.pem ec2-user@ec2-174-129-132-163.compute-1.amazonaws.com

The authenticity of host 'ec2-174-129-132-163.compute-1.amazonaws.com (174.129.132.163)' can't be established.

RSA key fingerprint is 2a:43:4c:d6:4f:c5:d1:66:d3:01:33:4c:a4:bd:66:c2.

Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'ec2-174-129-132-163.compute-1.amazonaws.com,174.129.132.163' (RSA) to the list of known hosts.

Last login: Tue Mar 13 00:53:58 2012 from c-98-248-137-177.hsd1.ca.comcast.net


       __|  __|_  )

       _|  (     /   Amazon Linux AMI

      ___|\___|___|
See /usr/share/doc/system-release/ for latest release notes.

There are 23 security update(s) out of 37 total update(s) available

[ec2-user@ip-10-245-153-127 ~]$ pwd

/home/ec2-user


In case the 32-bit AMI is used, the following files will be found in the home directory: 
[ec2-user@ip-10-245-153-127 ~]$ ls
appdynamics-appagent  appdynamics-machineagent  controller_32bit_linux.sh
In case the 64-bit AMI is used, the following files will be found in the home directory: 
[ec2-user@ip-10-245-153-127 ~]$ ls
appdynamics-appagent  appdynamics-machineagent  controller_64bit_linux.sh

The newly launched AppDynamics Pro instance contains:



  1. The AppServerAgent directory appdynamics-appagent

  2. The MachineAgent directory appdynamics-machineagent

  3. The Controller installer controller_[32|64]bit_linux.sh

To install the controller, execute the installer script in the home directory:
[ec2-user@ip-10-245-153-127 ~]$ chmod a+x controller_64bit_linux.sh 

[ec2-user@ip-10-245-153-127 ~]$ ./controller_64bit_linux.sh 

Unpacking JRE ...

Starting Installer ...

This will install AppDynamics Controller on your computer.

OK [o, Enter], Cancel [c]

. . .
For detailed instructions on how to install the Controller and the Agents, please browse: http://docs.appdynamics.com
There are specifically 2 usage patterns and these are described below:


  • Usage-Pattern-1: In this pattern, the user deploys the application to be monitored onto the AWS instance above that contains the AppDynamics components and instruments that application using the AppServerAgent and MachineAgent available there.

  •  Usage-Pattern-2: In this pattern, the user continues to run the application wherever it is currently running, but zips up and downloads the AppDynamics AppServerAgent and MachineAgent from the AWS instance and copies it to the machine where the application is running. The user then attaches the AppServerAgent and MachineAgent to the application on a separate machine and configures those agents to point to the Controller running on the AWS instance above. To achieve this zipping up and copying of the agents, the following steps need to be followed:

·  

Step 1: Zip up the AppServerAgent and Machine into zip files

·   
[ec2-user@ip-10-245-153-127 ~]$ zip -r appdynamics-appagent.zip appdynamics-appagent/

  adding: appdynamics-appagent/ (stored 0%)

  adding: appdynamics-appagent/conf/ (stored 0%)

  adding: appdynamics-appagent/conf/logging/ (stored 0%)

  adding: appdynamics-appagent/conf/logging/log4j.xml (deflated 79%)

  adding: appdynamics-appagent/conf/logging/log4j.dtd (deflated 70%)

  adding: appdynamics-appagent/conf/jmx/ (stored 0%)

  adding: appdynamics-appagent/conf/jmx/mbean-servers.xsd (deflated 68%)

  adding: appdynamics-appagent/conf/jmx/servers/ (stored 0%)

  adding: appdynamics-appagent/conf/jmx/servers/cassandra-0.7.0-jmx-config.xml (deflated 92%)

  adding: appdynamics-appagent/conf/jmx/servers/websphere-6-jmx-config.xml (deflated 40%)

  adding: appdynamics-appagent/conf/jmx/servers/platform-jmx-config.xml (deflated 29%)

  adding: appdynamics-appagent/conf/jmx/servers/jboss-4-jmx-config.xml (deflated 88%)

  adding: appdynamics-appagent/conf/jmx/servers/jmx-config.xsd (deflated 88%)

  adding: appdynamics-appagent/conf/jmx/servers/jboss-5-jmx-config.xml (deflated 88%)

  adding: appdynamics-appagent/conf/jmx/servers/jmx-config.dtd (deflated 65%)

  adding: appdynamics-appagent/conf/jmx/servers/tomcat-6-jmx-config.xml (deflated 90%)

  adding: appdynamics-appagent/conf/jmx/servers/tomcat-5-jmx-config.xml (deflated 86%)

  adding: appdynamics-appagent/conf/jmx/servers/websphere-7-jmx-config.xml (deflated 88%)

  adding: appdynamics-appagent/conf/jmx/servers/activemq-jmx-config.xml (deflated 93%)

  adding: appdynamics-appagent/conf/jmx/servers/weblogic-10-jmx-config.xml (deflated 89%)

  adding: appdynamics-appagent/conf/jmx/servers/hornetq-jmx-config.xml (deflated 76%)

  adding: appdynamics-appagent/conf/jmx/servers/tomcat-7-jmx-config.xml (deflated 90%)

  adding: appdynamics-appagent/conf/jmx/servers/glassfish-v2-jmx-config.xml (deflated 86%)

  adding: appdynamics-appagent/conf/jmx/servers/weblogic-9-jmx-config.xml (deflated 89%)

  adding: appdynamics-appagent/conf/jmx/servers/solr-jmx-config.xml (deflated 92%)

  adding: appdynamics-appagent/conf/jmx/mbean-servers.xml (deflated 80%)

  adding: appdynamics-appagent/conf/jmx/was-pmi/ (stored 0%)

  adding: appdynamics-appagent/conf/jmx/was-pmi/websphere-jmx-config-generator.properties (deflated 65%)

  adding: appdynamics-appagent/conf/jmx/was-pmi/wasjmxconfiggenerator.sh (deflated 52%)

  adding: appdynamics-appagent/conf/jmx/was-pmi/wasjmxconfiggenerator.bat (deflated 51%)

  adding: appdynamics-appagent/conf/jmx/mbean-servers.dtd (deflated 53%)

  adding: appdynamics-appagent/conf/app-agent-config.xml (deflated 76%)

  adding: appdynamics-appagent/conf/controller-info.xml (deflated 67%)

  adding: appdynamics-appagent/conf/transactions.xml (deflated 88%)

  adding: appdynamics-appagent/javaagent.jar (deflated 15%)

  adding: appdynamics-appagent/lib/ (stored 0%)

  adding: appdynamics-appagent/lib/singularity-log4j.jar (deflated 12%)

  adding: appdynamics-appagent/lib/appagent.jar (deflated 11%)

  adding: appdynamics-appagent/lib/tp/ (stored 0%)

  adding: appdynamics-appagent/lib/tp/commons-math-2.1.jar (deflated 11%)

  adding: appdynamics-appagent/lib/tp/commons-httpclient-3.1.jar (deflated 8%)

  adding: appdynamics-appagent/lib/tp/commons-io-1.4.jar (deflated 10%)

  adding: appdynamics-appagent/lib/tp/commons-logging-api-1.1.1.jar (deflated 8%)

  adding: appdynamics-appagent/lib/tp/commons-logging-1.1.1.jar (deflated 8%)

  adding: appdynamics-appagent/lib/tp/commons-fileupload-1.2.1.jar (deflated 14%)

  adding: appdynamics-appagent/lib/tp/commons-codec-1.3.jar (deflated 11%)

  adding: appdynamics-appagent/lib/tp/commons-logging-adapters-1.1.1.jar (deflated 9%)

  adding: appdynamics-appagent/lib/tp/singularity-xml.jar (deflated 13%)

  adding: appdynamics-appagent/lib/tp/servlet-api-2.5-6.1.3.jar (deflated 6%)

  adding: appdynamics-appagent/lib/tp/asm-3.3.1.jar (deflated 8%)

  adding: appdynamics-appagent/sdk/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/package-list (deflated 12%)

  adding: appdynamics-appagent/sdk/docs/allclasses-noframe.html (deflated 48%)

  adding: appdynamics-appagent/sdk/docs/constant-values.html (deflated 76%)

  adding: appdynamics-appagent/sdk/docs/index-all.html (deflated 85%)

  adding: appdynamics-appagent/sdk/docs/resources/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/resources/inherit.gif (stored 0%)

  adding: appdynamics-appagent/sdk/docs/allclasses-frame.html (deflated 50%)

  adding: appdynamics-appagent/sdk/docs/com/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/api/ (stored 0%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/api/AgentDelegate.html (deflated 80%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/api/ITransactionDemarcator.html (deflated 86%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/api/IMetricAndEventReporter.html (deflated 82%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/api/package-summary.html (deflated 75%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/api/package-frame.html (deflated 57%)

  adding: appdynamics-appagent/sdk/docs/com/appdynamics/apm/appagent/api/package-tree.html (deflated 78%)

  adding: appdynamics-appagent/sdk/docs/deprecated-list.html (deflated 76%)

  adding: appdynamics-appagent/sdk/docs/help-doc.html (deflated 71%)

  adding: appdynamics-appagent/sdk/docs/stylesheet.css (deflated 69%)

  adding: appdynamics-appagent/sdk/docs/overview-tree.html (deflated 76%)

  adding: appdynamics-appagent/sdk/docs/index.html (deflated 49%)

  adding: appdynamics-appagent/sdk/src/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/multithread/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/multithread/MutiThreadedExecutor.xhtml (deflated 86%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/multithread/MultiThreadServer.xhtml (deflated 87%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/sync/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/sync/SyncClient.xhtml (deflated 81%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/sync/ISyncServer.xhtml (deflated 69%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/sync/SyncServer.xhtml (deflated 82%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/async/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/async/AsyncClient.xhtml (deflated 81%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/async/IAsyncServer.xhtml (deflated 69%)

  adding: appdynamics-appagent/sdk/src/docs/com/appdynamics/sample/exitcall/async/AsyncServer.xhtml (deflated 84%)

  adding: appdynamics-appagent/sdk/src/conf/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/multithread/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/multithread/MultiThreadedExecutor.java (deflated 68%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/multithread/MultiThreadServer.java (deflated 73%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/sync/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/sync/SyncServer.java (deflated 62%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/sync/ISyncServer.java (deflated 38%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/sync/SyncClient.java (deflated 62%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/async/ (stored 0%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/async/AsyncServer.java (deflated 64%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/async/AsyncClient.java (deflated 63%)

  adding: appdynamics-appagent/sdk/src/java/com/appdynamics/sample/exitcall/async/IAsyncServer.java (deflated 38%)

  adding: appdynamics-appagent/logs/ (stored 0%)

  adding: appdynamics-appagent/readme.txt (deflated 56%)

[ec2-user@ip-10-245-153-127 ~]$ zip -r appdynamics-machineagent.zip appdynamics-machineagent/

  adding: appdynamics-machineagent/ (stored 0%)

  adding: appdynamics-machineagent/monitors/ (stored 0%)

  adding: appdynamics-machineagent/monitors/JavaHardwareMonitor/ (stored 0%)

  adding: appdynamics-machineagent/monitors/JavaHardwareMonitor/monitor.xml (deflated 56%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/ (stored 0%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/windows-stat.bat (stored 0%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/macos-stat.sh (deflated 76%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/monitor.xml (deflated 65%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/aix-stat.sh (deflated 75%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/linux-stat.sh (deflated 78%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/windows-stat.vbs (deflated 75%)

  adding: appdynamics-machineagent/monitors/HardwareMonitor/solaris-stat.sh (deflated 75%)

  adding: appdynamics-machineagent/conf/ (stored 0%)

  adding: appdynamics-machineagent/conf/logging/ (stored 0%)

  adding: appdynamics-machineagent/conf/logging/log4j.xml (deflated 62%)

  adding: appdynamics-machineagent/conf/controller-info.xml (deflated 65%)

  adding: appdynamics-machineagent/machineagent.jar (deflated 14%)

  adding: appdynamics-machineagent/lib/ (stored 0%)

  adding: appdynamics-machineagent/lib/README (deflated 34%)

  adding: appdynamics-machineagent/lib/tools.jar (deflated 36%)

  adding: appdynamics-machineagent/lib/tp/ (stored 0%)

  adding: appdynamics-machineagent/lib/tp/ant-commons-net.jar (deflated 10%)

  adding: appdynamics-machineagent/lib/tp/libsigar-x86-freebsd-5.so (deflated 62%)

  adding: appdynamics-machineagent/lib/tp/commons-httpclient-3.1.jar (deflated 8%)

  adding: appdynamics-machineagent/lib/tp/ant-weblogic.jar (deflated 11%)

  adding: appdynamics-machineagent/lib/tp/ant-nodeps.jar (deflated 9%)

  adding: appdynamics-machineagent/lib/tp/commons-io-1.4.jar (deflated 10%)

  adding: appdynamics-machineagent/lib/tp/libsigar-pa-hpux-11.sl (deflated 72%)

  adding: appdynamics-machineagent/lib/tp/xml-apis.jar (deflated 22%)

  adding: appdynamics-machineagent/lib/tp/ant-stylebook.jar (deflated 32%)

  adding: appdynamics-machineagent/lib/tp/ant.jar (deflated 8%)

  adding: appdynamics-machineagent/lib/tp/sigar-x86-winnt.dll (deflated 59%)

  adding: appdynamics-machineagent/lib/tp/libsigar-sparc-solaris.so (deflated 69%)

  adding: appdynamics-machineagent/lib/tp/jetty-util-6.1.3.jar (deflated 7%)

  adding: appdynamics-machineagent/lib/tp/libsigar-ia64-linux.so (deflated 77%)

  adding: appdynamics-machineagent/lib/tp/ant-junit.jar (deflated 9%)

  adding: appdynamics-machineagent/lib/tp/commons-logging-api-1.1.1.jar (deflated 8%)

  adding: appdynamics-machineagent/lib/tp/ant-trax.jar (deflated 11%)

  adding: appdynamics-machineagent/lib/tp/ant-apache-regexp.jar (deflated 23%)

  adding: appdynamics-machineagent/lib/tp/libsigar-universal64-macosx.dylib (deflated 69%)

  adding: appdynamics-machineagent/lib/tp/ant-apache-bcel.jar (deflated 18%)

  adding: appdynamics-machineagent/lib/tp/libsigar-sparc64-solaris.so (deflated 68%)

  adding: appdynamics-machineagent/lib/tp/ant-apache-log4j.jar (deflated 20%)

  adding: appdynamics-machineagent/lib/tp/ant-javamail.jar (deflated 15%)

  adding: appdynamics-machineagent/lib/tp/sigar-x86-winnt.lib (deflated 88%)

  adding: appdynamics-machineagent/lib/tp/ant-apache-oro.jar (deflated 16%)

  adding: appdynamics-machineagent/lib/tp/ant-launcher.jar (deflated 9%)

  adding: appdynamics-machineagent/lib/tp/commons-logging-1.1.1.jar (deflated 8%)

  adding: appdynamics-machineagent/lib/tp/sigar.jar (deflated 7%)

  adding: appdynamics-machineagent/lib/tp/libsigar-universal-macosx.dylib (deflated 68%)

  adding: appdynamics-machineagent/lib/tp/xercesImpl.jar (deflated 10%)

  adding: appdynamics-machineagent/lib/tp/libsigar-s390x-linux.so (deflated 68%)

  adding: appdynamics-machineagent/lib/tp/commons-fileupload-1.2.1.jar (deflated 14%)

  adding: appdynamics-machineagent/lib/tp/commons-codec-1.3.jar (deflated 11%)

  adding: appdynamics-machineagent/lib/tp/ant-swing.jar (deflated 15%)

  adding: appdynamics-machineagent/lib/tp/ant-apache-bsf.jar (deflated 22%)

  adding: appdynamics-machineagent/lib/tp/ant-netrexx.jar (deflated 11%)

  adding: appdynamics-machineagent/lib/tp/libsigar-ppc-aix-5.so (deflated 75%)

  adding: appdynamics-machineagent/lib/tp/ant-commons-logging.jar (deflated 15%)

  adding: appdynamics-machineagent/lib/tp/ant-jsch.jar (deflated 9%)

  adding: appdynamics-machineagent/lib/tp/libsigar-x86-solaris.so (deflated 66%)

  adding: appdynamics-machineagent/lib/tp/libsigar-ia64-hpux-11.sl (deflated 77%)

  adding: appdynamics-machineagent/lib/tp/ant-antlr.jar (deflated 5%)

  adding: appdynamics-machineagent/lib/tp/jetty-6.1.3.jar (deflated 5%)

  adding: appdynamics-machineagent/lib/tp/log4j-1.2.15.jar (deflated 9%)

  adding: appdynamics-machineagent/lib/tp/libsigar-amd64-freebsd-6.so (deflated 66%)

  adding: appdynamics-machineagent/lib/tp/libsigar-amd64-linux.so (deflated 66%)

  adding: appdynamics-machineagent/lib/tp/ant-jai.jar (deflated 15%)

  adding: appdynamics-machineagent/lib/tp/ant-jmf.jar (deflated 18%)

  adding: appdynamics-machineagent/lib/tp/libsigar-ppc-linux.so (deflated 66%)

  adding: appdynamics-machineagent/lib/tp/commons-logging-adapters-1.1.1.jar (deflated 9%)

  adding: appdynamics-machineagent/lib/tp/singularity-xml.jar (deflated 13%)

  adding: appdynamics-machineagent/lib/tp/ant-testutil.jar (deflated 13%)

  adding: appdynamics-machineagent/lib/tp/ant-jdepend.jar (deflated 13%)

  adding: appdynamics-machineagent/lib/tp/libsigar-ppc64-linux.so (deflated 72%)

  adding: appdynamics-machineagent/lib/tp/libsigar-amd64-solaris.so (deflated 67%)

  adding: appdynamics-machineagent/lib/tp/log4j.jar (deflated 10%)

  adding: appdynamics-machineagent/lib/tp/ant-starteam.jar (deflated 9%)

  adding: appdynamics-machineagent/lib/tp/libsigar-x86-freebsd-6.so (deflated 62%)

  adding: appdynamics-machineagent/lib/tp/libsigar-ppc64-aix-5.so (deflated 76%)

  adding: appdynamics-machineagent/lib/tp/ant-apache-resolver.jar (deflated 22%)

  adding: appdynamics-machineagent/lib/tp/libsigar-x86-linux.so (deflated 64%)

  adding: appdynamics-machineagent/lib/tp/sigar-amd64-winnt.dll (deflated 63%)

  adding: appdynamics-machineagent/lib/tp/servlet-api-2.5-6.1.3.jar (deflated 6%)

  adding: appdynamics-machineagent/logs/ (stored 0%)

[ec2-user@ip-10-245-153-127 ~]$ 

Step 2: Exit the AWS instance


ec2-user@ip-10-245-153-127 ~]$ exit

logout


Connection to ec2-174-129-132-163.compute-1.amazonaws.com closed.

Step 3: scp the agent zip file, using the same .pem file used for ssh, into the machine where the application is running.   


prantadas# scp -i ~/pranta-keypair2.pem ec2-user@ec2-174-129-132-163.compute-1.amazonaws.com:/home/ec2-user/*.zip .

appdynamics-appagent.zip                                                                             100% 6684KB 835.5KB/s   00:08    



appdynamics-machineagent.zip                                                                         100%   10MB   2.6MB/s   00:04    

[~]

Download 65.77 Kb.

Share with your friends:




The database is protected by copyright ©ininet.org 2024
send message

    Main page