chrisluiz16

Day 6 edited

Jun 26th, 2023
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 8.80 KB | None | 0 0
  1.  
  2.  
  3. -------------------------------------------------------------- Task 1-------------------------------------------
  4.  
  5. ### Playbook ###
  6.  
  7. ---
  8.  
  9. - name: Install mariadb
  10.   hosts: amazon
  11.   vars:
  12.     mysqlrootpasswd: mysqlroot123
  13.     blog_db: blogdb
  14.     blog_user: blog_user
  15.     blog_passwd: bloguser123
  16.   become: true
  17.   tasks:
  18.     - name: "Installing mariadb packages"
  19.       yum:
  20.         name: mariadb105-server
  21.         state: present
  22.     - name: "Restarting mariadb server"
  23.       service:
  24.         name: mariadb
  25.         state: restarted
  26.         enabled: true
  27.     - name: "Installing python3-pip"
  28.       yum:
  29.         name: python3-pip
  30.         state: present
  31.     - name: "Installing python3 modules"
  32.       pip:
  33.         name: PyMySQL
  34.     - name: "Setting root password for mysql"
  35.       mysql_user:
  36.         login_user: root
  37.         login_password: ""
  38.         login_unix_socket: /var/lib/mysql/mysql.sock
  39.         name: root
  40.         password: "{{ mysqlrootpasswd }}"
  41.       ignore_errors: true
  42.     - name: "Creating a datababe {{ blog_db }}"
  43.       mysql_db:
  44.         login_user: root
  45.         login_password: "{{ mysqlrootpasswd }}"
  46.         login_unix_socket: /var/lib/mysql/mysql.sock
  47.         name: "{{ blog_db }}"
  48.     - name: "Creating an extra user {{ blog_user }}"
  49.       mysql_user:
  50.         login_user: root
  51.         login_password: "{{ mysqlrootpasswd }}"
  52.         login_unix_socket: /var/lib/mysql/mysql.sock
  53.         name: "{{ blog_user}}"
  54.         password: "{{ blog_passwd }}"
  55.         host: "%"
  56.         priv: "{{ blog_db }}.*:ALL"
  57.  
  58.  
  59.  
  60.  
  61. [ec2-user@ip-172-31-45-174 ~]$ ansible-playbook -i inventory mariadb.yml
  62.  
  63. PLAY [Install mariadb] *************************************************************************************************
  64.  
  65. TASK [Gathering Facts] *************************************************************************************************
  66. [WARNING]: Platform linux on host 172.31.41.149 is using the discovered Python interpreter at /usr/bin/python3.9, but
  67. future installation of another Python interpreter could change the meaning of that path. See
  68. https://docs.ansible.com/ansible-core/2.15/reference_appendices/interpreter_discovery.html for more information.
  69. ok: [172.31.41.149]
  70.  
  71. TASK [Installing mariadb packages] *************************************************************************************
  72. changed: [172.31.41.149]
  73.  
  74. TASK [Restarting mariadb server] ***************************************************************************************
  75. changed: [172.31.41.149]
  76.  
  77. TASK [Installing python3-pip] ******************************************************************************************
  78. changed: [172.31.41.149]
  79.  
  80. TASK [Installing python3 modules] **************************************************************************************
  81. ok: [172.31.41.149]
  82.  
  83. TASK [Setting root password for mysql] *********************************************************************************
  84. changed: [172.31.41.149]
  85.  
  86. TASK [Creating a datababe blogdb] **************************************************************************************
  87. changed: [172.31.41.149]
  88.  
  89. TASK [Creating an extra user blog_user] ********************************************************************************
  90. changed: [172.31.41.149]
  91.  
  92. PLAY RECAP *************************************************************************************************************
  93. 172.31.41.149              : ok=8    changed=6    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100. ---------------------------------------Task 2 [ansible authorized_keys module] -----------------------------------------
  101.  
  102.  
  103. ### Keygen ###
  104.  
  105. > ssh-keygen -f flaskapp -P ""
  106.  
  107.  
  108. [ec2-user@ip-172-31-45-174 ~]$ ls
  109. aws.pem  flaskapp  flaskapp.pub  flask-variable.yml  flask.yml  inventory  mariadb.yml
  110.  
  111.  
  112. #### variables.yml ###
  113.  
  114. [ec2-user@ip-172-31-45-174 ~]$ cat flask-variable.yml
  115. git_url: https://github.com/Chris-luiz-16/Hello-world-flask-app-with-systemd-file.git
  116. flask_owner: flaskapp
  117. flask_group: flaskapp
  118. homedir: /var/flaskapp
  119. public_key: /home/ec2-user/flaskapp.pub
  120. packages:
  121.  - git
  122.   - python3-pip
  123.  
  124.  
  125.  
  126. #### Playbook ####
  127.  
  128. ---
  129.  
  130. - name: "Flask application deploy"
  131.   hosts: amazon
  132.   become: true
  133.   vars_files:
  134.    - flask-variable.yml
  135.   tasks:
  136.     - name: "Package installation"
  137.       yum:
  138.         name: "{{ packages }}"
  139.         state: present
  140.     - name: "Git clone to remote server"
  141.       git:
  142.         repo: "{{ git_url }}"
  143.         dest: /var/website/
  144.       register: git_status
  145.     - name: "Creating the homedirectory {{ homedir }}"
  146.       file:
  147.         path: "{{ homedir }}"
  148.         state: directory
  149.     - name: "Creating user {{ flask_owner }} for the flaskapplication"
  150.       user:
  151.         name: "{{ flask_owner }}"
  152.         shell: /bin/bash
  153.         home: "{{ homedir }}"
  154.         uid: 1010
  155.     - name: "Creating an ssh authorized key"
  156.       authorized_key:
  157.         user: "{{ flask_owner }}"
  158.         state: present
  159.         key: "{{ lookup('file', '{{ public_key }}') }}"
  160.  
  161.     - name: "Uploading the contents to doccument root {{ homedir }}"
  162.       when: git_status.changed == true
  163.       copy:
  164.         src: /var/website/
  165.         dest: "{{ homedir }}"
  166.         owner: "{{ flask_owner }}"
  167.         group: "{{ flask_group }}"
  168.         remote_src: true
  169.     - name: "Installing required flaskapplication using pip3"
  170.       when: git_status.changed == true
  171.       pip:
  172.         requirements: "{{ homedir }}/requirements.txt"
  173.  
  174.     - name: "Copying the systemd file flask.service"
  175.       when: git_status.changed == true
  176.       copy:
  177.         src: "{{ homedir }}/flask.service"
  178.         dest: /etc/systemd/system/flask.service
  179.         remote_src: true
  180.     - name: "Systemd service restart and daemon-reload "
  181.       when: git_status.changed == true
  182.       systemd:
  183.         daemon_reload: true
  184.         name: flask
  185.         state: restarted
  186.         enabled: true
  187.        
  188.  
  189.  
  190. #### Output ####
  191.  
  192. [ec2-user@ip-172-31-45-174 ~]$ ansible-playbook -i inventory flask.yml
  193.  
  194. PLAY [Flask application deploy] ****************************************************************************************
  195.  
  196. TASK [Gathering Facts] *************************************************************************************************
  197. [WARNING]: Platform linux on host 172.31.41.149 is using the discovered Python interpreter at /usr/bin/python3.9, but
  198. future installation of another Python interpreter could change the meaning of that path. See
  199. https://docs.ansible.com/ansible-core/2.15/reference_appendices/interpreter_discovery.html for more information.
  200. ok: [172.31.41.149]
  201.  
  202. TASK [Package installation] ********************************************************************************************
  203. ok: [172.31.41.149]
  204.  
  205. TASK [Git clone to remote server] **************************************************************************************
  206. ok: [172.31.41.149]
  207.  
  208. TASK [Creating the homedirectory /var/flaskapp] ************************************************************************
  209. ok: [172.31.41.149]
  210.  
  211. TASK [Creating user flaskapp for the flaskapplication] *****************************************************************
  212. ok: [172.31.41.149]
  213.  
  214. TASK [Creating an ssh authorized key] **********************************************************************************
  215. changed: [172.31.41.149]
  216.  
  217. TASK [Uploading the contents to doccument root /var/flaskapp] **********************************************************
  218. skipping: [172.31.41.149]
  219.  
  220. TASK [Installing required flaskapplication using pip3] *****************************************************************
  221. skipping: [172.31.41.149]
  222.  
  223. TASK [Copying the systemd file flask.service] **************************************************************************
  224. skipping: [172.31.41.149]
  225.  
  226. TASK [Systemd service restart and daemon-reload] ***********************************************************************
  227. skipping: [172.31.41.149]
  228.  
  229. PLAY RECAP *************************************************************************************************************
  230. 172.31.41.149              : ok=6    changed=1    unreachable=0    failed=0    skipped=4    rescued=0    ignored=0
  231.  
  232.  
  233.  
  234.  
  235. #### Verification ####
  236.  
  237.  
  238. [ec2-user@ip-172-31-45-174 ~]$ ssh -i flaskapp [email protected]
  239.    ,     #_
  240.    ~\_  ####_        Amazon Linux 2023
  241.   ~~  \_#####\
  242.   ~~     \###|
  243.   ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
  244.    ~~       V~' '->
  245.    ~~~         /
  246.       ~~._.   _/
  247.          _/ _/
  248.        _/m/'
  249. Last login: Mon Jun 26 11:01:03 2023 from 172.31.45.174
  250. [flaskapp@ip-172-31-41-149 ~]$ ll
  251. total 16
  252. -rw-r--r--. 1 flaskapp flaskapp 218 Jun 26 10:42 app.py
  253. -rw-r--r--. 1 flaskapp flaskapp 270 Jun 26 10:42 flask.service
  254. drwxr-xr-x. 2 flaskapp flaskapp  32 Jun 26 10:42 __pycache__
  255. -rw-r--r--. 1 flaskapp flaskapp 317 Jun 26 10:42 README.md
  256. -rw-r--r--. 1 flaskapp flaskapp  15 Jun 26 10:42 requirements.txt
  257.  
Advertisement
Add Comment
Please, Sign In to add comment