User Guide Cancel

Automate ColdFusion 2025 installation using Ansible

Introduction

Automating the deployment and configuration of Adobe ColdFusion (2025 release) can significantly streamline IT operations, reduce human error, and ensure consistent deployments across environments. While there are other tools available for automation, this article focuses on using Ansible; however, the same workflow can be adapted for use with other automation tools as well. This playbook provides step-by-step instructions for setting up Ansible on Ubuntu and using it to fully automate the installation of ColdFusion (2025 release).  

This playbook is designed for system administrators, DevOps engineers, and ColdFusion developers who need to deploy ColdFusion (2025 release) on Ubuntu with Apache as the web server.

Prerequisites

Before starting, ensure you have:

  • Ubuntu 24 LTS or later (target server)
  • Root or sudo access on the target server
  • Network connectivity between the control node and the target server
  • Adobe ColdFusion 2025 installation files and a valid license activation file

See ColdFusion 2025 support matrix for more information.

Required files

Gather these files before proceeding:

  • ColdFusion 2025 installer ZIP file – a lightweight installer ideal for automation. See Install ColdFusion using Zip installer for more information.
  • Silent installation properties file (silent.properties)  - ColdFusion Silent Installation properties file. See Silent installer properties in ColdFusion for more information.
  • Hotfix properties file (hotfix.properties) – ColdFusion Update Installation properties file.
  • ColdFusion settings export file (settings.json) – To import the ColdFusion settings using a JSON file using CFsetup.
  • License activation file – To activate ColdFusion 2025 using the License Package method. We are using ngl-preconditioning-data.json as the activation file in this article

Install Ansible on Ubuntu

Update system packages

sudo apt update  
sudo apt upgrade –y 

Install Ansible

Option 1: Install from the Ubuntu repository

sudo apt install ansible –y

Option 2: Install from Ansible PPA

sudo apt update 
sudo apt install software-properties-common -y  
sudo add-apt-repository --yes --update ppa:ansible/ansible  
sudo apt install ansible –y 

Option 3: Install using pip

sudo apt install python3-pip -y 
pip3 install ansible 

Verify Ansible installation

ansible --version

Prepare the environment

Create project directory structure

mkdir -p ~/coldfusion-ansible/{files,inventory,playbooks} 
cd ~/coldfusion-ansible

Create an inventory file

Create an inventory file to define your target servers:

nano inventory/hosts

Add server details:

[coldfusion_servers] 
cf-server ansible_host=192.168.1.100 ansible_user=ubuntu ansible_ssh_private_key_file=~/.ssh/id_rsa 
[coldfusion_servers:vars]  
ansible_python_interpreter=/usr/bin/python3

Copy the required files

cp /path/to/ColdFusion_2025_WWEJ_linux64.zip file
cp /path/to/silent.properties file
cp /path/to/hotfix.properties file
cp /path/to/settings.json file
cp /path/to/ngl-preconditioning-data.json file

Understand the Ansible playbook

The playbook automates the entire ColdFusion (2025 release) setup process through eight main phases:

  • File preparation: Copy installation files to the target server.
  • Environment setup: Install required packages and dependencies.
  • Firewall configuration (optional): Open necessary ports.
  • ColdFusion installation: Silent installation of ColdFusion.
  • Hotfix installation: Download and apply the latest updates.
  • Package management: Install ColdFusion packages.
  • Migration: Migrate all the ColdFusion settings.
  • Connector configuration: Set up the Apache connector.

Playbook tasks

Create the main playbook

Create the playbook YAML file.

nano playbooks/install-coldfusion.yml

Here’s the complete playbook structure:

- name: ColdFusion 2025 Installation,Hotfix Installation, Migration and Connector Configuration 

  hosts:  coldfusion_servers

  become: yes 

  tasks: 

    - name: Copy required files to /opt 

      copy: 

        src: "{{ item }}" 

        dest: /opt 

      loop: 

        - ColdFusion_2025_WWEJ_linux64.zip 

        - silent.properties 

        - hotfix.properties 

        - settings.json 

 

    - name: Install unzip 

      package: 

        name: unzip 

        state: present 

     - name: Ensure firewalld and firewall Python library are up to date 

      package: 

        name: 

          - firewalld 

          - python3-firewall 

        state: latest 

 

    - name: Install Apache2 

      apt: 

        name: apache2 

        state: present 

        update_cache: yes 

     - name: Ensure Apache2 is running and enabled on boot 

      systemd: 

        name: apache2 

        state: started 

        enabled: yes 

     - name: Open Apache port 80 in firewall 

      firewalld: 

        port: 80/tcp 

        permanent: yes 

        state: enabled 

        immediate: yes 

 

    - name: Unzip ColdFusion installer 

      ansible.builtin.unarchive: 

        src: /opt/ColdFusion_2025_WWEJ_linux64.zip 

        dest: /opt 

        remote_src: yes 

     - name: Unzip ColdFusion WWEJ installer again 

      ansible.builtin.unarchive: 

        src: /opt/ColdFusion_WWEJ_linux64.zip 

        dest: /opt 

        remote_src: yes 

    - name: Set recursive permissions for /opt/ColdFusion and Configuration files 

      file: 

        path: "{{ item.path }}" 

        mode: "{{ item.mode }}" 

        recurse: "{{ item.recurse | default(omit) }}" 

      loop: 

        - { path: "/opt/ColdFusion", mode: "0755", recurse: yes } 

        - { path: "/opt/silent.properties", mode: "0644" } 

        - { path: "/opt/hotfix.properties", mode: "0644" } 

        - { path: "/opt/settings.json", mode: "0644" } 

     - name: Install ColdFusion silently 

      command: /opt/ColdFusion/cfusion/bin/cfinstall.sh -f /opt/silent.properties -i silent 

     - name: Restart ColdFusion server 

      command: /opt/ColdFusion/cfusion/bin/coldfusion restart 

     - name: Open port 8500 in firewall 

      firewalld: 

        port: 8500/tcp 

        permanent: yes 

        state: enabled 

     - name: Download hotfix package 

      get_url: 

        url: https://cfdownload.adobe.com/pub/adobe/coldfusion/2025/packages/hotfix-packages-cf2025-002-331451.zip 

        dest: /opt/hotfix-packages-cf2025-002-331451.zip 

     - name: Create bundles directory 

      file: 

        path: /opt/bundles 

        state: directory 

     - name: Extract hotfix package 

      ansible.builtin.unarchive: 

        src: /opt/hotfix-packages-cf2025-002-331451.zip 

        dest: /opt/bundles 

        remote_src: yes 

     - name: Stop ColdFusion server 

      command: /opt/ColdFusion/cfusion/bin/coldfusion stop 

     - name: Copy files to ColdFusion bundles directory 

      copy: 

        src: /opt/bundles/ 

        dest: /opt/ColdFusion/bundles/ 

        remote_src: yes 

 

    - name: Apply hotfix 

      command: /opt/ColdFusion/jre/bin/java -jar -Djdk.util.zip.disableZip64ExtraFieldValidation=true /opt/ColdFusion/bundles/updateinstallers/hotfix-002-331451.jar -i silent -f /opt/hotfix.properties 

      ignore_errors:  yes 

      become: yes  # Ensures the command runs as sudo 

    - name: Install all ColdFusion packages 

      shell: echo "Y" | ./cfpm.sh update all 

      args: 

        chdir:  /opt/ColdFusion/cfusion/bin/ 

      become:  yes 

     - name: Import ColdFusion settings 

      command: /opt/ColdFusion/config/cfsetup/cfsetup.sh import NOSQL /opt/settings.json /opt/ColdFusion/cfusion/ -p=admin@123 

      args: 

        chdir:  /opt/ColdFusion/config/cfsetup 

    - name: Configure ColdFusion Apache connector 

      command: ./wsconfig -ws Apache -dir /etc/apache2/ -bin /usr/sbin/apache2ctl -script /usr/sbin/apache2ctl -v #The path changes as per the Apache installation. 

      args: 

        chdir: /opt/ColdFusion/cfusion/runtime/bin 

      become: yes  # Ensures the command runs as sudo 

     - name: Restart ColdFusion server 

      command: /opt/ColdFusion/cfusion/bin/coldfusion restart  

Create configuration files

Silent installation properties (silent.properties):

#Silent properties for ColdFusion 2025 ZIP Installer 
# ColdFusion Administrator password 
COLDFUSION_ADMIN_PASSWORD=Adobe$123 
# Internal webserver port 
COLDFUSION_ADMIN_PORT=8500 
# Install License type - 1-Install new version of Adobe ColdFusion 2025 with License , 2-30-day trial, 3-Developer Edition 
INSTALL_TYPE=1 
# Edition - 1-Enterprise,2-Standard 
LICENSE_EDITION=1 
# Mode - 1-NUL,2-FRL 
LICENSE_ACTIVATION_MODE=2 
# FRL License File Path 
LICENSE_FILE_PATH=/opt/ngl-preconditioning-data.json 
# Accept EULA- true. To proceed, you must accept the EULA 
EULA_ACCEPTED=true 
# IP address from which Administrator can be accessed 
IP_ADDRESSES=*.*.*.* 
# Specify the deployment type- 1-Production, 2-Development, 3-Staging, 4-Testing, 5-Disaster recovery 
DEPLOYMENT_TYPE=3 
# Name of the ColdFusion service 
COLDFUSION_WIN_SERVICE_NAME=CF2025 
# Server profile - 1-Production+Secure, 2-Production, 3-Development. 
SERVER_PROFILE=2 
# Specify the RDS password 
#COLDFUSION_RDS_PASSWORD=Adobe$123 
# ColdFusion install location 
COLDFUSION_INSTALL_LOCATION=/opt/ColdFusion 
#ColdFusion RUNTIME USER 
COLDFUSION_RUNTIME_USER=root 

Hotfix properties (hotfix.properties):

INSTALLER_UI=silent 
USER_INSTALL_DIR=/opt/ColdFusion 
DOC_ROOT=/opt/ColdFusion/cfusion/wwwroot/ 
# The following applies only to multi-server scenarios. 
INSTANCE_LIST=ALL 

Run the playbook

Check syntax

Check for syntax errors before running the playbook.

ansible-playbook -i inventory/hosts playbooks/install-coldfusion.yml --syntax-check

Dry run

Perform a dry run to see what changes will be made.

ansible-playbook -i inventory/hosts playbooks/install-coldfusion.yml --check

Execute playbook

Run the playbook.

ansible-playbook -i inventory/hosts playbooks/install-coldfusion.yml -v

For more verbose output, use -vv or -vvv.

Monitor playbook progress

The playbook will show progress for each task. Installation typically takes 15-30 minutes, depending on your server specifications and network speed.

Post-installation verification

Verify ColdFusion services

Check if ColdFusion is running as expected.

ps aux | grep coldfusion 
netstat -tlnp | grep 8500 

Test ColdFusion Administrator

Access the ColdFusion Administrator.

http://your-server-ip:8500/CFIDE/administrator/index.cfm

Create a CFM file and run it. 

Note

As part of your playbook, you can add an additional Ansible task to copy your web application code into the Apache web root (e.g., /var/www/html)

Adobe, Inc.

Get help faster and easier

New user?