2016-09-16 145 views
0

我有下面的.sh代碼需要轉換爲Ansible任務。使用Ansible調用Perl腳本

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

我敢打賭,你不需要perl的位置,使用lineinfileregex選項(如果你需要修改文件中的單個線)或replace模塊(如果你需要修改所有實例)。

0

只需撥打Perl,以commandshell - 模:

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