使用Ansible调用Perl脚本

时间:2016-09-16 07:05:35

标签: perl shell ansible sh

我有以下.sh代码需要转换为Ansible任务。

#!/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

下面是我的任务。我遇到了需要执行perl脚本的问题。你们中的任何人都可以帮助我继续前进。

- 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

2 个答案:

答案 0 :(得分:2)

我打赌你不需要perl,使用lineinfileregex选项(如果你需要修改文件中的一行)或replace模块(如果你需要修改所有的事件。)

答案 1 :(得分:0)

只需使用commandshell - 模块:

调用perl

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