Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -------------------------------------------------------------- Task 1-------------------------------------------
- ### Playbook ###
- ---
- - name: Install mariadb
- hosts: amazon
- vars:
- mysqlrootpasswd: mysqlroot123
- blog_db: blogdb
- blog_user: blog_user
- blog_passwd: bloguser123
- become: true
- tasks:
- - name: "Installing mariadb packages"
- yum:
- name: mariadb105-server
- state: present
- - name: "Restarting mariadb server"
- service:
- name: mariadb
- state: restarted
- enabled: true
- - name: "Installing python3-pip"
- yum:
- name: python3-pip
- state: present
- - name: "Installing python3 modules"
- pip:
- name: PyMySQL
- - name: "Setting root password for mysql"
- mysql_user:
- login_user: root
- login_password: ""
- login_unix_socket: /var/lib/mysql/mysql.sock
- name: root
- password: "{{ mysqlrootpasswd }}"
- ignore_errors: true
- - name: "Creating a datababe {{ blog_db }}"
- mysql_db:
- login_user: root
- login_password: "{{ mysqlrootpasswd }}"
- login_unix_socket: /var/lib/mysql/mysql.sock
- name: "{{ blog_db }}"
- - name: "Creating an extra user {{ blog_user }}"
- mysql_user:
- login_user: root
- login_password: "{{ mysqlrootpasswd }}"
- login_unix_socket: /var/lib/mysql/mysql.sock
- name: "{{ blog_user}}"
- password: "{{ blog_passwd }}"
- host: "%"
- priv: "{{ blog_db }}.*:ALL"
- [ec2-user@ip-172-31-45-174 ~]$ ansible-playbook -i inventory mariadb.yml
- PLAY [Install mariadb] *************************************************************************************************
- TASK [Gathering Facts] *************************************************************************************************
- [WARNING]: Platform linux on host 172.31.41.149 is using the discovered Python interpreter at /usr/bin/python3.9, but
- future installation of another Python interpreter could change the meaning of that path. See
- https://docs.ansible.com/ansible-core/2.15/reference_appendices/interpreter_discovery.html for more information.
- ok: [172.31.41.149]
- TASK [Installing mariadb packages] *************************************************************************************
- changed: [172.31.41.149]
- TASK [Restarting mariadb server] ***************************************************************************************
- changed: [172.31.41.149]
- TASK [Installing python3-pip] ******************************************************************************************
- changed: [172.31.41.149]
- TASK [Installing python3 modules] **************************************************************************************
- ok: [172.31.41.149]
- TASK [Setting root password for mysql] *********************************************************************************
- changed: [172.31.41.149]
- TASK [Creating a datababe blogdb] **************************************************************************************
- changed: [172.31.41.149]
- TASK [Creating an extra user blog_user] ********************************************************************************
- changed: [172.31.41.149]
- PLAY RECAP *************************************************************************************************************
- 172.31.41.149 : ok=8 changed=6 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
- ---------------------------------------Task 2 [ansible authorized_keys module] -----------------------------------------
- ### Keygen ###
- > ssh-keygen -f flaskapp -P ""
- [ec2-user@ip-172-31-45-174 ~]$ ls
- aws.pem flaskapp flaskapp.pub flask-variable.yml flask.yml inventory mariadb.yml
- #### variables.yml ###
- [ec2-user@ip-172-31-45-174 ~]$ cat flask-variable.yml
- git_url: https://github.com/Chris-luiz-16/Hello-world-flask-app-with-systemd-file.git
- flask_owner: flaskapp
- flask_group: flaskapp
- homedir: /var/flaskapp
- public_key: /home/ec2-user/flaskapp.pub
- packages:
- - git
- - python3-pip
- #### Playbook ####
- ---
- - name: "Flask application deploy"
- hosts: amazon
- become: true
- vars_files:
- - flask-variable.yml
- tasks:
- - name: "Package installation"
- yum:
- name: "{{ packages }}"
- state: present
- - name: "Git clone to remote server"
- git:
- repo: "{{ git_url }}"
- dest: /var/website/
- register: git_status
- - name: "Creating the homedirectory {{ homedir }}"
- file:
- path: "{{ homedir }}"
- state: directory
- - name: "Creating user {{ flask_owner }} for the flaskapplication"
- user:
- name: "{{ flask_owner }}"
- shell: /bin/bash
- home: "{{ homedir }}"
- uid: 1010
- - name: "Creating an ssh authorized key"
- authorized_key:
- user: "{{ flask_owner }}"
- state: present
- key: "{{ lookup('file', '{{ public_key }}') }}"
- manage_dir: false
- path: "{{ homedir }}/.ssh/authorized_keys"
- - name: "Uploading the contents to doccument root {{ homedir }}"
- when: git_status.changed == true
- copy:
- src: /var/website/
- dest: "{{ homedir }}"
- owner: "{{ flask_owner }}"
- group: "{{ flask_group }}"
- remote_src: true
- - name: "Installing required flaskapplication using pip3"
- when: git_status.changed == true
- pip:
- requirements: "{{ homedir }}/requirements.txt"
- - name: "Copying the systemd file flask.service"
- when: git_status.changed == true
- copy:
- src: "{{ homedir }}/flask.service"
- dest: /etc/systemd/system/flask.service
- remote_src: true
- - name: "Systemd service restart and daemon-reload "
- when: git_status.changed == true
- systemd:
- daemon_reload: true
- name: flask
- state: restarted
- enabled: true
- #### Output ####
- [ec2-user@ip-172-31-45-174 ~]$ ansible-playbook -i inventory flask.yml
- PLAY [Flask application deploy] ****************************************************************************************
- TASK [Gathering Facts] *************************************************************************************************
- [WARNING]: Platform linux on host 172.31.41.149 is using the discovered Python interpreter at /usr/bin/python3.9, but
- future installation of another Python interpreter could change the meaning of that path. See
- https://docs.ansible.com/ansible-core/2.15/reference_appendices/interpreter_discovery.html for more information.
- ok: [172.31.41.149]
- TASK [Package installation] ********************************************************************************************
- ok: [172.31.41.149]
- TASK [Git clone to remote server] **************************************************************************************
- ok: [172.31.41.149]
- TASK [Creating the homedirectory /var/flaskapp] ************************************************************************
- ok: [172.31.41.149]
- TASK [Creating user flaskapp for the flaskapplication] *****************************************************************
- ok: [172.31.41.149]
- TASK [Creating an ssh authorized key] **********************************************************************************
- changed: [172.31.41.149]
- TASK [Uploading the contents to doccument root /var/flaskapp] **********************************************************
- skipping: [172.31.41.149]
- TASK [Installing required flaskapplication using pip3] *****************************************************************
- skipping: [172.31.41.149]
- TASK [Copying the systemd file flask.service] **************************************************************************
- skipping: [172.31.41.149]
- TASK [Systemd service restart and daemon-reload] ***********************************************************************
- skipping: [172.31.41.149]
- PLAY RECAP *************************************************************************************************************
- 172.31.41.149 : ok=6 changed=1 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0
- #### Verification ####
- [ec2-user@ip-172-31-45-174 ~]$ ssh -i flaskapp flaskapp@172.31.41.149
- , #_
- ~\_ ####_ Amazon Linux 2023
- ~~ \_#####\
- ~~ \###|
- ~~ \#/ ___ https://aws.amazon.com/linux/amazon-linux-2023
- ~~ V~' '->
- ~~~ /
- ~~._. _/
- _/ _/
- _/m/'
- Last login: Mon Jun 26 11:01:03 2023 from 172.31.45.174
- [flaskapp@ip-172-31-41-149 ~]$ ll
- total 16
- -rw-r--r--. 1 flaskapp flaskapp 218 Jun 26 10:42 app.py
- -rw-r--r--. 1 flaskapp flaskapp 270 Jun 26 10:42 flask.service
- drwxr-xr-x. 2 flaskapp flaskapp 32 Jun 26 10:42 __pycache__
- -rw-r--r--. 1 flaskapp flaskapp 317 Jun 26 10:42 README.md
- -rw-r--r--. 1 flaskapp flaskapp 15 Jun 26 10:42 requirements.txt
Advertisement
Add Comment
Please, Sign In to add comment