在您自己的 ansible playbook 中安装 rust 将确保您可以在您可能使用的所有机器上获得一致的安装,或者在您的开发机器出现故障时复制它。

个人理念

我尝试在我的 ansible playbook 中安装我想要使用的所有内容,而不仅仅是试用。这样,我总是在我的工作和家用机器上获得相同的设置,并且任何时候我都可以设置一个扔掉的 vm。

推荐安装

这就是 rust 建议您在 Ubuntu 上安装它的方式。首先更新您的系统,然后运行他们的安装程序,最后检查安装是否成功。

# system update
sudo apt update sudo apt upgrade

# download and run the rust installer
curl https://sh.rustup.rs -sSf | sh

# confirm your installation is successful
rustc --version

进入全屏模式 退出全屏模式

Ansible 安装

我在剧本中做的第一件事是检查该工具是否已安装。这里我选择找cargo,你也可以找

rustc

  - name: check if cargo is installed
    shell: command -v cargo
    register: cargo_exists
    ignore_errors: yes

进入全屏模式 退出全屏模式

我首先检查现有安装,以便重新运行我的剧本

仅快速填写缺少的工具。更多关于这个

ansible install 有条件

接下来,我们需要下载安装程序脚本并使其可执行。

  - name: Download Installer
    when: cargo_exists is failed
    get_url:
      url: https://sh.rustup.rs
      dest: /tmp/sh.rustup.rs
      mode: '0755'
      force: 'yes'
    tags:
      - rust

进入全屏模式 退出全屏模式

我选择下载安装程序,因为无法传入

-y标志否则,这是进行无人值守安装所必需的。

最后,我们只是运行带有-y标志的 rust 给我们的安装程序,这样它就可以在无人看管的情况下运行。


  - name: install rust/cargo
    when: cargo_exists is failed
    shell: /tmp/sh.rustup.rs -y
    tags:
      - rust

进入全屏模式 退出全屏模式

还有一件事

确保你采购你的货物环境,否则你的外壳将找不到rustccargo。我选择通过将以下行添加到我的~/.zshrc来做到这一点。如果这是你的事情,你可以在~/.bashrc中,或者只是运行它你的外壳让它工作。

[ -f ~/.cargo/env ] && source $HOME/.cargo/env

进入全屏模式 退出全屏模式

完整安装手册

这是一个完整的安装手册,可帮助您入门或移植到您自己的手册中。

- hosts: localhost
  gather_facts: true
  become: true
  become_user: "{{ lookup('env', 'USER') }}"

  pre_tasks:
    - name: update repositories
      apt: update_cache=yes
      become_user: root
      changed_when: False
  vars:
    user: "{{ ansible_user_id }}"
  tasks:
  - name: check if cargo is installed
    shell: command -v cargo
    register: cargo_exists
    ignore_errors: yes

  - name: Download Installer
    when: cargo_exists is failed
    get_url:
      url: https://sh.rustup.rs
      dest: /tmp/sh.rustup.rs
      mode: '0755'
      force: 'yes'
    tags:
      - rust

  - name: install rust/cargo
    when: cargo_exists is failed
    shell: /tmp/sh.rustup.rs -y
    tags:
      - rust

进入全屏模式 退出全屏模式

您可以将其保存为local.yml并在 shell 中运行以下命令以在本地计算机上运行 playbook。

ansible-playbook local.yml --ask-become-pass

进入全屏模式 退出全屏模式

注意:系统更新步骤需要--ask-become-pass

这将在 ansible 启动后立即询问您的密码。

我也有一篇非常相似的文章,关于我如何ansible install fonts

Logo

更多推荐