Ansible Automation


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
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
# 3  
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:

Login or Register to Reply

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

More UNIX and Linux Forum Topics You Might Find Helpful
Useradd with ansible
getrue
Hello, I need ansible playbook to create new user on remote server. Remote server blocked direct root login so I must login first application user and later I must run "useradd" command with sudo. I need playbook.yml and cli command. Best regards,... Shell Programming and Scripting
0
Shell Programming and Scripting
Passing variables from UNIX to Ansible to UNIX shell
mohtashims
I m passing a variable stringg from Unix shell which has value 'Good Day' to ansible and from ansible to a second shell script where it print only Good instead of 'Good Day' passing the variable stringg from unix shell script1.sh echo $stringg ansible-playbook install.yml -i...... UNIX and Linux Applications
1
UNIX and Linux Applications
Small automation
snjksh
Frequently we need to stop or start services on Linux systems. For exmaple : To start or stop vsftpd daemon # /etc/init.d/vsftpd start or # /etc/init.d/vsftpd stop Following script will check the vsftpd service and if it is running, it will be stopped or vice-versa. # cat...... Shell Programming and Scripting
5
Shell Programming and Scripting
Need help in automation
balasubramani04
Hi, I wanted to automate the scp command where i do not want to enter the password each time. So thought of using expect command. Script is executing without any issues but files are not copied to remote server. Can any one help me? Below is my shell script.. #!/bin/ksh ...... UNIX for Advanced & Expert Users
6
UNIX for Advanced & Expert Users
Help in automation...
nua7
Hi All, I need to run the same command on many servers. I am using ssh for the same. Following is the script that I am using to fire the same command on multiple machines. #!/bin/bash # Linux/UNIX box with ssh key based login #SERVERS="iqmevrick,iqmango" # SSH User name USR="root" #...... Shell Programming and Scripting
1
Shell Programming and Scripting