User Guide Cancel

Automate ColdFusion 2023 installation using Ansible

Introduction

Automating the deployment and configuration of Adobe ColdFusion (2023 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 (2023 release).

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

Prerequisites

Before starting, ensure you have:

  • Ubuntu 22 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 2023 installation files and a valid license

See ColdFusion 2023 support matrix for more information.

Required files

Gather these files before proceeding:

  • ColdFusion 2023 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 JSON file using CFsetup.

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_2023_WWEJ_linux64.zip file
cp /path/to/silent.properties file
cp /path/to/hotfix.properties file
cp /path/to/settings.json file

Understand the Ansible playbook

The playbook automates the entire ColdFusion (2023 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 2023 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_2023_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_2023_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/2023/packages/hotfix-packages-cf2023-015-330825.zip

        dest: /opt/hotfix-packages-cf2023-015-330825.zip 

     - name: Create bundles directory 

      file: 

        path: /opt/bundles 

        state: directory 

     - name: Extract hotfix package 

      ansible.builtin.unarchive: 

        src: /opt/hotfix-packages-cf2023-015-330825.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):

# The serial number of the previous version of ColdFusion. Use it when it is for an upgrade 

# ColdFusion Administrator password 

COLDFUSION_ADMIN_PASSWORD=Admin@123 

# Internal webserver port 

COLDFUSION_ADMIN_PORT=8500 

# ColdFusion runtime user. Applicable for Linux and Ubuntu 

COLDFUSION_RUNTIME_USER=root 

# Install type - 1-Install new version of Adobe ColdFusion 2021 with a serial number , 2-30-day trial, 3-Developer Edition 

INSTALL_TYPE=2 

# Accept EULA- true. To proceed, you must accept the EULA 

EULA_ACCEPTED=true 

# Serial number of the new version of ColdFusion 

SERIAL_NUMBER= 

# IP address from which Administrator can be accessed 

IP_ADDRESSES= 

# Specify the deployment type- Production, Development, Staging, Testing, Disaster recovery 

DEPLOYMENT_TYPE=Development 

# Server profile - 1-Production+Secure, 2-Production, 3-Development. 

SERVER_PROFILE=3 

# Specify the RDS password 

COLDFUSION_RDS_PASSWORD=Admin@123 

# Name of the ColdFusion service 

COLDFUSION_WIN_SERVICE_NAME=cf2023zipservice 

# ColdFusion install location 

COLDFUSION_INSTALL_LOCATION=/opt/ColdFusion/ 

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. 

Adobe, Inc.

Get help faster and easier

New user?