chrisluiz16

Day 6 extra ansible authorized_keys

Jun 26th, 2023
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 8.88 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.         manage_dir: false
  161.         path: "{{ homedir }}/.ssh/authorized_keys"
  162.  
  163.     - name: "Uploading the contents to doccument root {{ homedir }}"
  164.       when: git_status.changed == true
  165.       copy:
  166.         src: /var/website/
  167.         dest: "{{ homedir }}"
  168.         owner: "{{ flask_owner }}"
  169.         group: "{{ flask_group }}"
  170.         remote_src: true
  171.     - name: "Installing required flaskapplication using pip3"
  172.       when: git_status.changed == true
  173.       pip:
  174.         requirements: "{{ homedir }}/requirements.txt"
  175.  
  176.     - name: "Copying the systemd file flask.service"
  177.       when: git_status.changed == true
  178.       copy:
  179.         src: "{{ homedir }}/flask.service"
  180.         dest: /etc/systemd/system/flask.service
  181.         remote_src: true
  182.     - name: "Systemd service restart and daemon-reload "
  183.       when: git_status.changed == true
  184.       systemd:
  185.         daemon_reload: true
  186.         name: flask
  187.         state: restarted
  188.         enabled: true
  189.        
  190.  
  191.  
  192. #### Output ####
  193.  
  194. [ec2-user@ip-172-31-45-174 ~]$ ansible-playbook -i inventory flask.yml
  195.  
  196. PLAY [Flask application deploy] ****************************************************************************************
  197.  
  198. TASK [Gathering Facts] *************************************************************************************************
  199. [WARNING]: Platform linux on host 172.31.41.149 is using the discovered Python interpreter at /usr/bin/python3.9, but
  200. future installation of another Python interpreter could change the meaning of that path. See
  201. https://docs.ansible.com/ansible-core/2.15/reference_appendices/interpreter_discovery.html for more information.
  202. ok: [172.31.41.149]
  203.  
  204. TASK [Package installation] ********************************************************************************************
  205. ok: [172.31.41.149]
  206.  
  207. TASK [Git clone to remote server] **************************************************************************************
  208. ok: [172.31.41.149]
  209.  
  210. TASK [Creating the homedirectory /var/flaskapp] ************************************************************************
  211. ok: [172.31.41.149]
  212.  
  213. TASK [Creating user flaskapp for the flaskapplication] *****************************************************************
  214. ok: [172.31.41.149]
  215.  
  216. TASK [Creating an ssh authorized key] **********************************************************************************
  217. changed: [172.31.41.149]
  218.  
  219. TASK [Uploading the contents to doccument root /var/flaskapp] **********************************************************
  220. skipping: [172.31.41.149]
  221.  
  222. TASK [Installing required flaskapplication using pip3] *****************************************************************
  223. skipping: [172.31.41.149]
  224.  
  225. TASK [Copying the systemd file flask.service] **************************************************************************
  226. skipping: [172.31.41.149]
  227.  
  228. TASK [Systemd service restart and daemon-reload] ***********************************************************************
  229. skipping: [172.31.41.149]
  230.  
  231. PLAY RECAP *************************************************************************************************************
  232. 172.31.41.149              : ok=6    changed=1    unreachable=0    failed=0    skipped=4    rescued=0    ignored=0
  233.  
  234.  
  235.  
  236.  
  237. #### Verification ####
  238.  
  239.  
  240. [ec2-user@ip-172-31-45-174 ~]$ ssh -i flaskapp flaskapp@172.31.41.149
  241.    ,     #_
  242.    ~\_  ####_        Amazon Linux 2023
  243.   ~~  \_#####\
  244.   ~~     \###|
  245.   ~~       \#/ ___   https://aws.amazon.com/linux/amazon-linux-2023
  246.    ~~       V~' '->
  247.     ~~~         /
  248.       ~~._.   _/
  249.          _/ _/
  250.        _/m/'
  251. Last login: Mon Jun 26 11:01:03 2023 from 172.31.45.174
  252. [flaskapp@ip-172-31-41-149 ~]$ ll
  253. total 16
  254. -rw-r--r--. 1 flaskapp flaskapp 218 Jun 26 10:42 app.py
  255. -rw-r--r--. 1 flaskapp flaskapp 270 Jun 26 10:42 flask.service
  256. drwxr-xr-x. 2 flaskapp flaskapp  32 Jun 26 10:42 __pycache__
  257. -rw-r--r--. 1 flaskapp flaskapp 317 Jun 26 10:42 README.md
  258. -rw-r--r--. 1 flaskapp flaskapp  15 Jun 26 10:42 requirements.txt
  259.  
Advertisement
Add Comment
Please, Sign In to add comment