Sangeetha
Sangeetha

Reputation: 125

Call Perl Script using Ansible

I have the below .sh code which need to get converted to Ansible tasks.

#!/bin/sh
echo "Installing Sonar"
SONAR_HOME=/tui/hybris/sonar
if [ ! -d "$SONAR_HOME" ]; then
mkdir -p $SONAR_HOME
fi
cd $SONAR_HOME
wget https://s3-eu-west-1.amazonaws.com/tuiuk/source/sonarqube/sonarqube-5.4.zip
unzip sonarqube-5.4.zip
echo "Modifying Sonar config file"
cd sonarqube-5.4/conf
perl -p -i -e 's/#sonar.jdbc.username=/sonar.jdbc.username=sonar/g' sonar.properties
perl -p -i -e 's/#sonar.jdbc.password=/sonar.jdbc.password=sonar/g' sonar.properties
perl -p -i -e 's/#sonar.jdbc.url=jdbc:mysql/sonar.jdbc.url=jdbc:mysql/g' sonar.properties
cd $SONAR_HOME
echo "downloading and copying plugins"
wget https://s3-eu-west-1.amazonaws.com/tuiuk/source/sonarqube/sonarqube5.4_plugins.zip
unzip sonarqube5.4_plugins.zip
cp plugins/* sonarqube-5.4/extensions/plugins/
cd sonarqube-5.4/bin/linux-x86-64
echo "Starting Sonar"
./sonar.sh start

Below is my task.I got stuck where I need to execute perl script. Could any of you help me in proceeding further.

- hosts: docker_test
  tasks:
   - name: Creates directory
     file: path=/tui/hybris/sonar state=directory mode=0777
     sudo: yes

   - name: Installing Sonar
     get_url:
       url: "https://s3-eu-west-1.amazonaws.com/tuiuk/source/sonarqube/sonarqube-5.4.zip"
       dest: "/tui/hybris/sonar/sonarqube-5.4.zip"
     register: get_solr

   - debug:
       msg: "solr was downloaded"
     when: get_solr|changed

   - name: Unzip SonarQube
     unarchive: src=/tui/hybris/sonar/sonarqube-5.4.zip dest=/tui/hybris/sonar copy=no

Upvotes: 1

Views: 4827

Answers (2)

OpenITeX
OpenITeX

Reputation: 507

Just call perl with command or shell-module:

- task: Modifying Sonar config file shell: cd sonarqube-5.4/conf && perl -p -i -e ...

Upvotes: 1

Konstantin Suvorov
Konstantin Suvorov

Reputation: 68269

I bet you don't need perl here, use lineinfile with regex option (if you need to modify a single line in the file) or replace module (if you need to modify all occurrences).

Upvotes: 2

Related Questions