ML
    • Recent
    • Categories
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Using Ansible to Manage install and update Apple OSX DHCP clients

    Scheduled Pinned Locked Moved IT Discussion
    osxansiblehomebrewappleautomation
    100 Posts 5 Posters 9.7k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • DustinB3403D
      DustinB3403 @IRJ
      last edited by

      @IRJ said in Using Ansible to Manage install and update Apple OSX DHCP clients:

      @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

      Okay so in using the test.yaml file buried within the geerlingguy folder I was able to at least get some progress.

      ansible-playbook -i hosts apple.yml
      
      PLAY [x.x.x.143] ***********************************************************************************************************************************************************************************************************************
      
      TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
      ok: [x.x.x.143]
      
      PLAY RECAP **********************************************************************************************************************************************************************************************************************************
      x.x.x.143             : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
      

      But doesn't seem to install based on what's in the apple.yml file

      ---
      - hosts: 1x.x.x.143
      vars:
        homebrew_clear_cache: true
        homebrew_installed_packages:
          - ssh-copy-id  # from homebrew/core
          - nginx-full  # from dengi/nginx
        homebrew_cask_apps:
          - 1Password # from hombrew/cask
      

      Oh! I thought you were only using a single file.

      Ok let's back up. can you show the folder structure of geerlingguy folder?

      To summarize, everything is installed in the default locations.

      tree /etc/ansible/
      /etc/ansible/
      ├── ansible.cfg
      ├── apple.yml
      ├── clients
      ├── hosts
      ├── requirements.yml
      ├── roles
      │   └── geerlingguy.homebrew
      │       ├── defaults
      │       │   └── main.yml
      │       ├── handlers
      │       │   └── main.yml
      │       ├── LICENSE
      │       ├── meta
      │       │   └── main.yml
      │       ├── README.md
      │       ├── requirements.yml
      │       ├── tasks
      │       │   ├── main.yml
      │       │   └── playbook.yml
      │       └── tests
      │           ├── local-testing
      │           │   ├── playbook.yml
      │           │   └── README.md
      │           └── test.yml
      └── ssh.sh
      
      8 directories, 17 files
      
      1 Reply Last reply Reply Quote 0
      • DustinB3403D
        DustinB3403
        last edited by

        The clients file and ssh.sh are for a quick deployment of the ssh key to all of my workstations if this works out :-).

        But ignore them for now.

        1 Reply Last reply Reply Quote 0
        • DustinB3403D
          DustinB3403
          last edited by

          This is the updated apply.yml file

          ---
          - hosts: apple_workstations
            vars:
          	homebrew_repo: https://github.com/Homebrew/brew
          	homebrew_prefix: /usr/local
          	homebrew_install_path: "{{ homebrew_prefix }}/Homebrew"
          	homebrew_bin_path: /usr/local/bin
          	homebrew_clear_cache: true
          	homebrew_installed_packages:
          	  - ssh-copy-id  # from homebrew/core
          	  - nginx-full  # from dengi/nginx
          	homebrew_cask_apps:
          	  - 1password
          	homebrew_taps:
          	  - homebrew/cask
          	  - { name: denji/nginx, url: 'https://github.com/denji/homebrew-nginx.git' }
          	homebrew_cask_accept_external_apps: true
          	homebrew_cask_appdir: /Applications
          

          It runs without issue, but doesn't actually install 1password

          1 Reply Last reply Reply Quote 0
          • IRJI
            IRJ @IRJ
            last edited by

            @IRJ said in Using Ansible to Manage install and update Apple OSX DHCP clients:

            Ok let's try this. Is your playbook only one file?

            #***********************************************************
            # Create or append ansible requirements file
            #***********************************************************
            
            
            sudo sh -c "echo '- src: /etc/ansible/roles/geerlineguy' >> /etc/ansible/requirements.yml"
            
            #***********************************************************
            # Install the role
            #***********************************************************
            
            cd /etc/ansible/
            sudo ansible-galaxy install -p roles -r /etc/ansible/requirements.yml
            
            #***********************************************************
            # Run ansible playbook file
            #***********************************************************
            
            sudo ansible-playbook /etc/ansible/apple.yml
            

            Updated. try this

            DustinB3403D 1 Reply Last reply Reply Quote 0
            • DustinB3403D
              DustinB3403 @IRJ
              last edited by

              @IRJ Each command individually?

              IRJI 1 Reply Last reply Reply Quote 0
              • IRJI
                IRJ @DustinB3403
                last edited by

                @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

                @IRJ Each command individually?

                yes reinstall the role this way

                DustinB3403D 1 Reply Last reply Reply Quote 0
                • DustinB3403D
                  DustinB3403 @IRJ
                  last edited by

                  @IRJ So wouldn't I have to delete the role first?

                  IRJI 1 Reply Last reply Reply Quote 0
                  • DustinB3403D
                    DustinB3403
                    last edited by

                    Also this fails.

                    sudo ansible-galaxy install -p roles -r /etc/ansible/requirements.yml
                     [WARNING]: - /etc/ansible/apple.yml was NOT installed successfully: the file downloaded was not a tar.gz
                    
                    ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.
                    
                    IRJI 1 Reply Last reply Reply Quote 0
                    • IRJI
                      IRJ @DustinB3403
                      last edited by

                      @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

                      @IRJ So wouldn't I have to delete the role first?

                      Just try running it first. If you delete the role, then the reference to source file will break.

                      1 Reply Last reply Reply Quote 0
                      • IRJI
                        IRJ @DustinB3403
                        last edited by

                        @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

                        Also this fails.

                        sudo ansible-galaxy install -p roles -r /etc/ansible/requirements.yml
                        [WARNING]: - /etc/ansible/apple.yml was NOT installed successfully: the file downloaded was not a tar.gz

                        ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.

                        let me see your /etc/ansible/requirements.yml

                        1 Reply Last reply Reply Quote 0
                        • DustinB3403D
                          DustinB3403
                          last edited by

                          cat /etc/ansible/requirements.yml
                          - src: /etc/ansible/apple.yml
                          - src: /etc/ansible/apple.yml
                          - src: /etc/ansible/roles/geerlineguy
                          
                          IRJI 1 Reply Last reply Reply Quote 0
                          • IRJI
                            IRJ @DustinB3403
                            last edited by

                            @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

                            cat /etc/ansible/requirements.yml
                            - src: /etc/ansible/apple.yml
                            - src: /etc/ansible/apple.yml
                            - src: /etc/ansible/roles/geerlineguy
                            

                            get rid of the first two entries

                            DustinB3403D 1 Reply Last reply Reply Quote 0
                            • DustinB3403D
                              DustinB3403 @IRJ
                              last edited by

                              @IRJ just did, not sure why they're in there as I haven't touched this file.

                              IRJI 1 Reply Last reply Reply Quote 0
                              • IRJI
                                IRJ @DustinB3403
                                last edited by

                                @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

                                @IRJ just did, not sure why they're in there as I haven't touched this file.

                                They are there because we did echo command in script to add them.

                                1 Reply Last reply Reply Quote 0
                                • DustinB3403D
                                  DustinB3403
                                  last edited by

                                  sudo ansible-galaxy install -p roles -r /etc/ansible/requirements.yml
                                  - downloading role '/etc/ansible/roles/geerlineguy', owned by
                                   [WARNING]: - /etc/ansible/roles/geerlineguy was NOT installed successfully: Content has no field named 'owner'
                                  
                                  ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.
                                  
                                  IRJI 1 Reply Last reply Reply Quote 0
                                  • IRJI
                                    IRJ @DustinB3403
                                    last edited by

                                    @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

                                    sudo ansible-galaxy install -p roles -r /etc/ansible/requirements.yml

                                    • downloading role '/etc/ansible/roles/geerlineguy', owned by
                                      [WARNING]: - /etc/ansible/roles/geerlineguy was NOT installed successfully: Content has no field named 'owner'

                                    ERROR! - you can use --ignore-errors to skip failed roles and finish processing the list.

                                    We need the master @stacksofplates

                                    1 Reply Last reply Reply Quote 0
                                    • DustinB3403D
                                      DustinB3403
                                      last edited by

                                      Running ansible-playbook -i hosts apple.yml

                                       ansible-playbook -i hosts apple.yml
                                      
                                      PLAY [apple_workstations] *******************************************************************************************************************************************************************************************************************
                                      
                                      TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
                                      ok: [x.x.x.143]
                                      
                                      PLAY RECAP **********************************************************************************************************************************************************************************************************************************
                                      x.x.x.143             : ok=1    changed=0    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
                                      

                                      So I think the playbook and role are installed correctly.

                                      IRJI 1 Reply Last reply Reply Quote 0
                                      • IRJI
                                        IRJ @DustinB3403
                                        last edited by

                                        @DustinB3403 said in Using Ansible to Manage install and update Apple OSX DHCP clients:

                                        Running ansible-playbook -i hosts apple.yml

                                        ansible-playbook -i hosts apple.yml

                                        PLAY [apple_workstations] *******************************************************************************************************************************************************************************************************************

                                        TASK [Gathering Facts] **********************************************************************************************************************************************************************************************************************
                                        ok: [x.x.x.143]

                                        PLAY RECAP **********************************************************************************************************************************************************************************************************************************
                                        x.x.x.143 : ok=1 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0

                                        So I think the playbook and role are installed correctly.

                                        what changed?

                                        DustinB3403D 1 Reply Last reply Reply Quote 0
                                        • DustinB3403D
                                          DustinB3403 @IRJ
                                          last edited by

                                          @IRJ I used the test.yml file from within the geerlingguy tests folder.

                                          I stated this up above.

                                          What doesn't appear to work is anything actually being installed. . .

                                          1 Reply Last reply Reply Quote 0
                                          • stacksofplatesS
                                            stacksofplates
                                            last edited by

                                            Ok I'm eating dinner and I'll make a post afterwards.

                                            1 Reply Last reply Reply Quote 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 5 / 5
                                            • First post
                                              Last post