chrisluiz16

DOCKER + GIT

Jun 30th, 2023
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 14.91 KB | None | 0 0
  1.  
  2.  
  3. ---------------------------------- Task 1 Flask application ----------------------------------------
  4.  
  5.  
  6. ---
  7.  
  8. - name: "Docker image build"
  9.   hosts: build
  10.   become: true
  11.   vars:
  12.     packages:
  13.      - docker
  14.       - git
  15.     git_url: https://github.com/Chris-luiz-16/Hello-world-flask-app-with-systemd-file.git
  16.     clone_dest: /var/flaskapp
  17.     docker_name: chrisluiz16/flaskappdocker
  18.   vars_files:
  19.    - passwd.vars
  20.   tasks:
  21.     - name: "Install required packages for docker build"
  22.       yum:
  23.         name: "{{ packages }}"
  24.         state: present
  25.     - name: "Adding a secondary user docker for the user ec2-user"
  26.       user:
  27.         name: ec2-user
  28.         groups: docker
  29.         append: true
  30.     - name: "Starng/enabibling the docker service"
  31.       service:
  32.         name: docker
  33.         state: started
  34.         enabled: true
  35.     - name: "git cloning the Flask application"
  36.       git:
  37.         repo: "{{ git_url }}"
  38.         dest: "{{ clone_dest }}"
  39.       register: git_status
  40.     - name: "Printing the git commit id's"
  41.       debug:
  42.         var: git_status
  43.     - name: "Login to the dockerhub"
  44.       when: git_status.changed == true
  45.       docker_login:
  46.         username: "{{ docker_user }}"
  47.         password: "{{ docker_passwd }}"
  48.     - name: "Docker image build from Docker file"
  49.       when: git_status.changed == true
  50.       community.docker.docker_image:
  51.         name: "{{ docker_name }}"
  52.         source: build
  53.         build:
  54.           path: "{{ clone_dest }}"
  55.           pull: true
  56.         tag: "{{ item }}"
  57.         push: true
  58.         force_tag: true
  59.         force_source: true
  60.       with_items:
  61.        - latest
  62.         - "{{ git_status.after }}"
  63.       register: build_status
  64.  
  65.     - name: "Deleting the local image build"
  66.       when: git_status.changed == true
  67.       community.docker.docker_image:
  68.         name: "{{ docker_name }}"
  69.         tag: "{{ item }}"
  70.         state: absent
  71.       with_items:
  72.        - latest
  73.         - "{{ git_status.after }}"
  74.     - name: "Logout docker hub"
  75.       when: git_status.changed == true
  76.       docker_login:
  77.         username: "{{ docker_user }}"
  78.         password: "{{ docker_passwd }}"
  79.         state: absent
  80.  
  81. - name: "Running a flaskapp container"
  82.   hosts: test
  83.   become: true
  84.   vars:
  85.     packages:
  86.      - python3-pip
  87.       - docker
  88.     git_url: https://github.com/Chris-luiz-16/Hello-world-flask-app-with-systemd-file.git
  89.     clone_dest: /var/flaskapp
  90.     docker_name: chrisluiz16/flaskappdocker
  91.   tasks:
  92.     - name: "Installing required packages for the flaskapp docker container"
  93.       yum:
  94.         name: "{{ packages }}"
  95.         state: present
  96.     - name: "Adding docker as a secondary user in ec2-user"
  97.       user:
  98.         name: ec2-user
  99.         groups: docker
  100.         append: true
  101.     - name: " Starting & enable docker service"
  102.       service:
  103.         name: docker
  104.         state: started
  105.         enabled: true
  106.     - name: "Pulling the docker image to the test server"
  107.       community.docker.docker_image:
  108.         name: "{{ docker_name }}"
  109.         source: pull
  110.         force_source: true
  111.       register: image_status
  112.     - name: "Creating a container in test server"
  113.       when: image_status.changed == true
  114.       docker_container:
  115.         name: flaskctr
  116.         image: "{{ docker_name }}"
  117.         recreate: true
  118.         restart_policy: always
  119.         published_ports: 5000:5000
  120.  
  121.  
  122.        
  123.  
  124.  
  125. #### Output ####
  126.  
  127. [ec2-user@ip-172-31-12-92 ~]$ ansible-playbook -i hosts main.yml --vault-password-file=secret.sh
  128.  
  129. PLAY [Docker image build] **********************************************************************************************************************************
  130.  
  131. TASK [Gathering Facts] *************************************************************************************************************************************
  132. ok: [172.31.13.244]
  133.  
  134. TASK [Install required packages for docker build] **********************************************************************************************************
  135. ok: [172.31.13.244]
  136.  
  137. TASK [Adding a secondary user docker for the user ec2-user] ************************************************************************************************
  138. ok: [172.31.13.244]
  139.  
  140. TASK [Starng/enabibling the docker service] ****************************************************************************************************************
  141. ok: [172.31.13.244]
  142.  
  143. TASK [git cloning the Flask application] *******************************************************************************************************************
  144. changed: [172.31.13.244]
  145.  
  146. TASK [Printing the git commit id's] ************************************************************************************************************************
  147. ok: [172.31.13.244] => {
  148.     "git_status": {
  149.         "after": "3cb7d7d72286a2b2558e496240143fbe16d21a26",
  150.         "before": "9912d65954c0822fee7ea674fa87faefada99f76",
  151.         "changed": true,
  152.         "failed": false,
  153.         "remote_url_changed": false
  154.     }
  155. }
  156.  
  157. TASK [Login to the dockerhub] ******************************************************************************************************************************
  158. changed: [172.31.13.244]
  159.  
  160. TASK [Docker image build from Docker file] *****************************************************************************************************************
  161. changed: [172.31.13.244] => (item=latest)
  162. ok: [172.31.13.244] => (item=3cb7d7d72286a2b2558e496240143fbe16d21a26)
  163.  
  164. TASK [Deleting the local image build] **********************************************************************************************************************
  165. changed: [172.31.13.244] => (item=latest)
  166. changed: [172.31.13.244] => (item=3cb7d7d72286a2b2558e496240143fbe16d21a26)
  167.  
  168. TASK [Logout docker hub] ***********************************************************************************************************************************
  169. changed: [172.31.13.244]
  170.  
  171. PLAY [Running a flaskapp container] ************************************************************************************************************************
  172.  
  173. TASK [Gathering Facts] *************************************************************************************************************************************
  174. ok: [172.31.5.16]
  175.  
  176. TASK [Installing required packages for the flaskapp docker container] **************************************************************************************
  177. ok: [172.31.5.16]
  178.  
  179. TASK [Adding docker as a secondary user in ec2-user] *******************************************************************************************************
  180. ok: [172.31.5.16]
  181.  
  182. TASK [Starting & enable docker service] ********************************************************************************************************************
  183. ok: [172.31.5.16]
  184.  
  185. TASK [Pulling the docker image to the test server] *********************************************************************************************************
  186. changed: [172.31.5.16]
  187.  
  188. TASK [Creating a container in test server] *****************************************************************************************************************
  189. changed: [172.31.5.16]
  190.  
  191. PLAY RECAP *************************************************************************************************************************************************
  192. 172.31.13.244              : ok=10   changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  193. 172.31.5.16                : ok=6    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  194.  
  195.  
  196.  
  197.  
  198.  
  199. ###---------------------------------- Task 2 nodejs application ---------------####
  200.  
  201. ---
  202.  
  203. - name: "Docker image build"
  204.   hosts: build
  205.   become: true
  206.   vars:
  207.     packages:
  208.      - docker
  209.       - git
  210.     git_url: https://github.com/Chris-luiz-16/Simple-Nodejs-Hello-world-Docker-image-and-container-build.git
  211.     clone_dest: /var/nodejs
  212.     docker_name: chrisluiz16/nodejs
  213.   vars_files:
  214.    - passwd.vars
  215.   tasks:
  216.     - name: "Install required packages for docker build"
  217.       yum:
  218.         name: "{{ packages }}"
  219.         state: present
  220.     - name: "Adding a secondary user docker for the user ec2-user"
  221.       user:
  222.         name: ec2-user
  223.         groups: docker
  224.         append: true
  225.     - name: "Starng/enabibling the docker service"
  226.       service:
  227.         name: docker
  228.         state: started
  229.         enabled: true
  230.     - name: "git cloning the nodejs application"
  231.       git:
  232.         repo: "{{ git_url }}"
  233.         dest: "{{ clone_dest }}"
  234.       register: git_status
  235.     - name: "Printing the git commit id's"
  236.       debug:
  237.         var: git_status
  238.     - name: "Login to the dockerhub"
  239.       when: git_status.changed == true
  240.       docker_login:
  241.         username: "{{ docker_user }}"
  242.         password: "{{ docker_passwd }}"
  243.     - name: "Docker image build from Docker file"
  244.       when: git_status.changed == true
  245.       community.docker.docker_image:
  246.         name: "{{ docker_name }}"
  247.         source: build
  248.         build:
  249.           path: "{{ clone_dest }}"
  250.           pull: true
  251.         tag: "{{ item }}"
  252.         push: true
  253.         force_tag: true
  254.         force_source: true
  255.       with_items:
  256.        - latest
  257.         - "{{ git_status.after }}"
  258.       register: build_status
  259.  
  260.     - name: "Deleting the local image build"
  261.       when: git_status.changed == true
  262.       community.docker.docker_image:
  263.         name: "{{ docker_name }}"
  264.         tag: "{{ item }}"
  265.         state: absent
  266.       with_items:
  267.        - latest
  268.         - "{{ git_status.after }}"
  269.     - name: "Logout docker hub"
  270.       when: git_status.changed == true
  271.       docker_login:
  272.         username: "{{ docker_user }}"
  273.         password: "{{ docker_passwd }}"
  274.         state: absent
  275.  
  276. - name: "Running a nodejs container in test server"
  277.   hosts: test
  278.   become: true
  279.   vars:
  280.     packages: docker
  281.     git_url: https://github.com/Chris-luiz-16/Simple-Nodejs-Hello-world-Docker-image-and-container-build.git
  282.     clone_dest: /var/flaskapp
  283.     docker_name: chrisluiz16/nodejs
  284.   tasks:
  285.     - name: "Installing required packages for the nodejs docker container"
  286.       yum:
  287.         name: "{{ packages }}"
  288.         state: present
  289.     - name: "Adding docker as a secondary user in ec2-user"
  290.       user:
  291.         name: ec2-user
  292.         groups: docker
  293.         append: true
  294.     - name: " Starting & enable docker service"
  295.       service:
  296.         name: docker
  297.         state: started
  298.         enabled: true
  299.     - name: "Pulling the docker image to the test server"
  300.       community.docker.docker_image:
  301.         name: "{{ docker_name }}"
  302.         source: pull
  303.         force_source: true
  304.       register: image_status
  305.     - name: "Creating a node js container in test server"
  306.       when: image_status.changed == true
  307.       docker_container:
  308.         name: nodejsctr
  309.         image: "{{ docker_name }}"
  310.         recreate: true
  311.         restart_policy: always
  312.         published_ports: 3000:3000
  313.        
  314.  
  315.        
  316. #### Output ####
  317.  
  318. [ec2-user@ip-172-31-12-92 ~]$ ansible-playbook -i hosts nodejs.yml --vault-password-file=secret.sh
  319.  
  320. PLAY [Docker image build] **********************************************************************************************************************************
  321.  
  322. TASK [Gathering Facts] *************************************************************************************************************************************
  323.  
  324. ok: [172.31.13.244]
  325.  
  326. TASK [Install required packages for docker build] **********************************************************************************************************
  327. ok: [172.31.13.244]
  328.  
  329. TASK [Adding a secondary user docker for the user ec2-user] ************************************************************************************************
  330. ok: [172.31.13.244]
  331.  
  332. TASK [Starng/enabibling the docker service] ****************************************************************************************************************
  333. ok: [172.31.13.244]
  334.  
  335. TASK [git cloning the nodejs application] ******************************************************************************************************************
  336. changed: [172.31.13.244]
  337.  
  338. TASK [Printing the git commit id's] ************************************************************************************************************************
  339. ok: [172.31.13.244] => {
  340.     "git_status": {
  341.         "after": "31a3756964e5c14b77c39b8b258d38846c2b7295",
  342.         "before": "a2d9e3d95e6cee555477214ba7e336a1c451a427",
  343.         "changed": true,
  344.         "failed": false,
  345.         "remote_url_changed": false
  346.     }
  347. }
  348.  
  349. TASK [Login to the dockerhub] ******************************************************************************************************************************
  350. changed: [172.31.13.244]
  351.  
  352. TASK [Docker image build from Docker file] *****************************************************************************************************************
  353. changed: [172.31.13.244] => (item=latest)
  354. ok: [172.31.13.244] => (item=31a3756964e5c14b77c39b8b258d38846c2b7295)
  355.  
  356. TASK [Deleting the local image build] **********************************************************************************************************************
  357. changed: [172.31.13.244] => (item=latest)
  358. changed: [172.31.13.244] => (item=31a3756964e5c14b77c39b8b258d38846c2b7295)
  359.  
  360. TASK [Logout docker hub] ***********************************************************************************************************************************
  361. changed: [172.31.13.244]
  362.  
  363. PLAY [Running a nodejs container in test server] ***********************************************************************************************************
  364.  
  365. TASK [Gathering Facts] *************************************************************************************************************************************
  366.  
  367. ok: [172.31.5.16]
  368.  
  369. TASK [Installing required packages for the nodejs docker container] ****************************************************************************************
  370. ok: [172.31.5.16]
  371.  
  372. TASK [Adding docker as a secondary user in ec2-user] *******************************************************************************************************
  373. ok: [172.31.5.16]
  374.  
  375. TASK [Starting & enable docker service] ********************************************************************************************************************
  376. ok: [172.31.5.16]
  377.  
  378. TASK [Pulling the docker image to the test server] *********************************************************************************************************
  379. changed: [172.31.5.16]
  380.  
  381. TASK [Creating a node js container in test server] *********************************************************************************************************
  382. changed: [172.31.5.16]
  383.  
  384. PLAY RECAP *************************************************************************************************************************************************
  385. 172.31.13.244              : ok=10   changed=5    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  386. 172.31.5.16                : ok=6    changed=2    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
  387.  
  388.  
  389.  
  390.  
Advertisement
Add Comment
Please, Sign In to add comment