Ansible Automation

Tags
lamp installation with ansible. solved

 
Thread Tools Search this Thread
# 1  
Old 10-24-2016
Ansible Automation

Hi Gurus,

I am new to ansible automation, kindly suggest me whether i am going in right path.

I Want to automate deployment of apache,mysql-server on multiple Linux hosts.

ansible version i am using ansible 1.5.4
OS: Ubuntu 14.04.5 LTS

below is the Script created for the same

Code:
---
- hosts: all
  tasks:
    - name: "Install Softwares Apache,Mysql-server,Php,Php-gd,php5-mysql"
      apt: name={{ item }} update_cache=yes state=latest
      with_items:
      - apache2
      - mysql-server
      - php5-mysql
      - php5
      - php5-gd
    - name: "Restart Apache"
      service: name=apache2 state=restarted
      notify:
      - reload apache2
    - name: "start Mysql"
      service: name=mysql state=started
      notify:
      - start mysql
    - name: "Os Distro with <= 5"
      when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' and ansible_lsb.major_release|int <= 5
      apt: name={{ item }} update_cache=yes state=latest
      with_items:
      - php-devel
      - pecl
      - jason
    - name: "Identify Json Configuration Files"
      stat: path=/etc/php.d/json.ini
      register: JSON_CONFIG
    - name: "Modify File"
      lineinfile: dest=/etc/php.d/json.ini line="# Json Extension"
      lineinfile: dest=/etc/php.d/json.ini line="extension=json.so"
      when: JSON_CONFIG == true
      register: MOD_JSON_FL
    - name: "Restart Apache"
      service: name=apache2 state=restarted
      when: MOD_JSON_FL == true
      notify:
      - reload apache2
  handlers:
    - name: reload apache2
      service: name=apache2 state=reloaded
    - name: start mysql
      service: name=mysql state=started


Regard's
Venkatesh K
# 2  
Old 11-08-2016
Hi, try the playbook against Test machine first so you can see if there is any issues.
# 3  
Old 11-08-2016
Hi Corleone,

Thanks for the Reply, I tried and it was working as per our requirements on Ubuntu.

Code:
---
- hosts: linux
  tasks:
    - name: "Install Softwares Apache,Mysql-server,Php,Php-gd,php5-mysql"
      apt: name={{ item }} update_cache=yes state=latest
      with_items:
      - apache2
      - mysql-server
      - python-mysqldb
      - php5-mysql
      - php5-mcrypt
      - php5-curl
      - php5
      - php5-gd
    - name: "Restart Apache"
      service: name=apache2 state=started
      notify:
      - reload apache2
    - name: "start Mysql"
      service: name=mysql state=started
      notify:
      - start mysql
    - name: "Os Distro with <= 5"
      when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux' and ansible_lsb.major_release|int <= 5
      apt: name={{ item }} update_cache=yes state=latest
      with_items:
      - php-devel
      - perl
      - jason
    - name: "Modify File jason config file"
      lineinfile:
         dest: /etc/php.d/json.ini
         line: "{{item}}"
      with_items:
      - "# Json Extension"
      - "extension=json.so"
      when: ansible_lsb.major_release|int <= 5
      register: MOD_JSON_FL
    - name: "Restart Apache"
      service: name=apache2 state=restarted
      when: MOD_JSON_FL == true
      notify:
      - reload apache2
    - name: "Create Demo Data Base"
      mysql_db: login_user=root login_password=root name=demo12 state=present collation=utf8_general_ci
    - name: "Create Demo User"
      mysql_user: login_user=root login_password=root name=demo12 password=root priv=*.*:ALL,GRANT host=localhost state=present
    - name: "Restart My Sql Service"
      service: name=mysql state=restarted
    - name: "Download Xibo 1.7.7 Version "
      get_url:
        url: "https://github.com/xibosignage/xibo-cms/archive/1.7.7.tar.gz"
        dest: /var/www/html/xibo_1.7.7.tar.gz
    - name: "Unarchive Xibo Tarball "
      ignore_errors: yes
      command: "{{item}}"
      with_items:
      - tar zxvf /var/www/html/xibo_1.7.7.tar.gz -C /var/www/html/
      - mv /var/www/html/xibo-cms-1.7.7/ /var/www/html/xibo/
    - name: "Change Permissions"
      ignore_errors: yes
      file: path=/var/www/html/xibo/ owner=www-data group=www-data
    - name: "Creating the Media library and Manipulating the Permissions"
      ignore_errors: yes
      file: path=/var/www/html/xibo-library owner=www-data group=www-data mode=0755 state=directory
    - name: "Remove tar dump"
      ignore_errors: yes
      file: path=/var/www/html/xibo_1.7.7.tar.gz state=absent
    - name: "Check Config file /etc/php5/apache2/php.ini"
      stat: path=/etc/php5/apache2/php.ini
      register: PH_Ini_Sts
    - name: "Making Changes to Max Upload File Size,post_max_size,upload_max_size,max_execution_time in /etc/php5/apache2/php.ini"
      replace: dest=/etc/php5/apache2/php.ini
          regexp="{{item.regexp}}"
          replace="{{item.line}}"
      with_items:
      - { regexp: "^(.*)max_input_time(.*)$", line: 'max_input_time = 5000' }
      - { regexp: "^(.*)memory_limit(.*)$", line: 'memory_limit = 1000M' }
      - { regexp: "^(.*)max_execution_time(.*)$", line: 'max_execution_time = 5000' }
      - { regexp: "^(.*)post_max_size(.*)$", line: 'post_max_size = 750M' }
      - { regexp: "^(.*)upload_max_filesize(.*)$", line: 'upload_max_filesize = 750M' }
      when: PH_Ini_Sts == true
    - name: "Adding Localhost entry in /etc/apache2/apache2.conf"
      lineinfile: dest=/etc/apache2/apache2.conf line="ServerName localhost"
    - name: "Run PHPenmode COmmand"
      command: php5enmod mcrypt
    - name: "White Labelling"
      ignore_errors: yes
      copy: src="{{item}}" dest=/var/www/html/xibo/theme/default/img/ backup=yes owner=www-data
      with_items:
      - ~/xibologo.png
      - ~/favicon.ico
    - name: "Replacing Xibo with VENKAT in /var/www/html/xibo/theme/default/config.php"
      replace: dest=/var/www/html/xibo/theme/default/config.php
         regexp="{{item.regexp}}"
         replace="{{item.line}}"
      with_items:
      - { regexp: "^(.*)theme_title(.*)$", line: "              'theme_title' => 'VENKAT Digital Signage'," }
      - { regexp: "^(.*)app_name(.*)$", line: "         'app_name' => 'VENKAT'," }
    - name: "Restart Apache"
      service: name=apache2 state=restarted
  handlers:
    - name: reload apache2
      service: name=apache2 state=reloaded
    - name: start mysql
      service: name=mysql state=started
    - name: FIL_COPY
      command: ls
  #If Proxy needed
  #environment:
  #   http:

# 4  
Old 11-09-2016
Cool, pretty good playbook. I am implementing Ansible in our environment so lets keep posting our notes as someone might find it useful.

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Useradd with ansible getrue Shell Programming and Scripting 0 11-03-2017 10:30 AM
UNIX automation nikhilthms97 Post Here to Contact Site Administrators and Moderators 1 05-23-2017 02:28 AM
Passing variables from UNIX to Ansible to UNIX shell mohtashims UNIX and Linux Applications 1 04-05-2017 05:43 PM
Script Automation r_t_1601 Shell Programming and Scripting 3 05-10-2013 03:54 AM
automation using python Arun_Linux Shell Programming and Scripting 4 08-28-2012 08:26 AM
Need help in automation balasubramani04 UNIX for Advanced & Expert Users 6 04-03-2012 05:03 PM
scp automation Ericyue Shell Programming and Scripting 4 03-29-2012 02:52 AM
Automation of UI using shellscript aish11 Shell Programming and Scripting 11 12-16-2011 05:52 AM
Tar automation thedriver Shell Programming and Scripting 2 09-19-2011 08:39 AM
password automation arunmanas UNIX for Dummies Questions & Answers 4 03-24-2011 02:47 AM
Scripting for automation sara23 Shell Programming and Scripting 6 02-23-2011 05:35 PM
UNIX automation j_panky Shell Programming and Scripting 42 02-02-2011 02:05 PM
scp automation u263066 UNIX for Dummies Questions & Answers 5 12-30-2009 05:05 AM
Help need for automation of su command nua7 Shell Programming and Scripting 1 10-19-2008 09:06 PM
Help in automation... nua7 Shell Programming and Scripting 1 10-03-2008 07:52 AM