How to run apt update and upgrade via Ansible shell

Just to add a flavour on the answer. This one is an executable playbook in all the hosts specified in your inventory file.

- hosts: all
  become: true
  tasks:
  - name: Update and upgrade apt packages
    apt:
      upgrade: yes
      update_cache: yes
      cache_valid_time: 86400 

I wouldn't recommend using shell for this, as Ansible has the apt module designed for just this purpose. I've detailed using apt below.

In a playbook, you can update and upgrade like so:

- name: Update and upgrade apt packages
  become: true
  apt:
    upgrade: yes
    update_cache: yes
    cache_valid_time: 86400 #One day

The cache_valid_time value can be omitted. Its purpose from the docs:

Update the apt cache if its older than the cache_valid_time. This option is set in seconds.

So it's good to include if you don't want to update the cache when it has only recently been updated.

To do this as an ad-hoc command you can run:

$ ansible all -m apt -a "upgrade=yes update_cache=yes cache_valid_time=86400" --become

ad-hoc commands are described in detail here

Note that I am using --become and become: true. This is an example of typical privilege escalation through Ansible. You use -u user and -K (ask for privilege escalation password). Use whichever works for you, this is just to show you the most common form.