Git Product home page Git Product logo

ansible-google-chrome's Introduction

sourcejedi.google-chrome

Install the Google Chrome web browser.

Status

This role works fine on my systems (Fedora and Debian). I expect it to break at some point. See Package Signing Keys below.

Requirements

Your operating system must be based on "Debian" (apt package manager) or "RedHat" (dnf or possibly yum package manager).

Your CPU architecture must be supported by Google Chrome. 64-bit x86 is supported. 32-bit x86 is no longer supported.

Currently, this role assumes the gpg command can be obtained by installing the gnupg package. It's OK if this is still the traditional GnuPG v1, like in Fedora. It would only break if they removed the gnupg package, and expected us to install gnupg2.

Warning for Fedora Linux

Fedora users are reminded not to remove fedora-workstation-repositories. Removing that package can cause security vulnerabilities. You do not have to install that package if you do not want to. The problem is if you remove fedora-workstation-repositories after installing Chrome, it will remove google-chrome.repo. This will cut off your security updates, leaving you vulnerable to attack. This applies even if you originally installed Chrome by downloading it from the website. The same problem would apply to all repositories which fedora-workstation-repositories installs. New repositories may be added to this package at any time. I am not aware of any script to handle the problem. (For technical completeness: this Ansible role appears to avoid the problem. This is not deliberate. Do not rely on it).

Role Variables

For yum or dnf, you can download updates from a shared cache by setting google_chrome__yum_baseurl. To set this value, take the baseurl for the repository, and remove the architecture at the end (/x86-64 / /$basearch). I use this with apt-cacher-ng.

We consider proxy= in dnf.conf or yum.conf to be obsolete. PackageKit deliberately ignores it, and has no direct equivalent.

There is no proxy variable for systems using apt. You can instead set Acquire::http::Proxy in apt.conf. The setting will be respected both by apt and PackageKit.

There is an older variable google_chrome__yum_proxy, to set a HTTP proxy on the repository. The proxy MUST support HTTPS through the HTTP CONNECT method. apt-cacher-ng MUST NOT be used. The yum/dnf repo configuration fetches the signing key over HTTPS. apt-cacher-ng does not support HTTPS. I have seen PackageKit fail to fetch the signing key, and then ignore Chrome security updates. This affects the GNOME Software updater, for example.

Package Signing Keys

This role verifies the known fingerprints of Google package signing keys, inspired by Dockerfile best practices. If you like to cross-check the current fingerprints, simply visit the Google Linux Software Repositories page.

Once Google Chrome has been verified and installed, it should take care of any subsequent key updates as normal. They will be downloaded over HTTPS. I believe key pinning is not implemented.

However the current version of this role will stop working when the Packages Signing Authority key changes. Note the "expires" fields below.

$ gpg --with-fingerprint files/linux_signing_key.pub
pub  1024D/7FAC5991 2007-03-08 Google, Inc. Linux Package Signing Key <[email protected]>
      Key fingerprint = 4CCA 1EAF 950C EE4A B839  76DC A040 830F 7FAC 5991
sub  2048g/C07CB649 2007-03-08
pub  4096R/D38B4796 2016-04-12 Google Inc. (Linux Packages Signing Authority) <[email protected]>
      Key fingerprint = EB4C 1BFD 4F04 2F6D DDCC  EC91 7721 F63B D38B 4796
sub  4096R/640DB551 2016-04-12 [expires: 2019-04-12]
sub  4096R/997C215E 2017-01-24 [expires: 2020-01-24]

(Possible improvement: provide an option which refetches linux_signing_keys.pub, for use by developers. This option will fail during a key transition, instead of after. It can use get_url force=yes - it's a small file - so I can pick up the transition the next time I run the role. The option should work in --check mode, if at all possible).

License

The role itself is licensed GPLv3, please open an issue if this creates any problem.

Terms of Service apply for Google Chrome:

Google Chrome may include executable code from multiple parties, with specific sections in the Terms of Service. Chrome may also use Google online services. The terms do not require Google to notify you of any changes.

For open source code, without third-party components, look for the Chromium Browser.

ansible-google-chrome's People

Contributors

sourcejedi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.