如果我直接在终端中运行下面的命令,kubectl将被启用。如果我在Ansible剧本中对shell模块使用相同的命令,它就会执行,但它没有完成启用kubectl的任务。
export KUBECONFIG="/etc/rancher/rke2/rke2.yaml" \
&& export PATH="$PATH:/usr/local/bin:/var/lib/rancher/rke2/bin"不可用的剧本
---
- name: Copy installer
hosts: FIRST_SERVER
gather_facts: yes
ignore_unreachable: true
any_errors_fatal: true
tasks:
- name: Execute enable kubectl on primary server
when: inventory_hostname in groups['FIRST_SERVER']
shell: |
set -o pipefail
export KUBECONFIG="/etc/rancher/rke2/rke2.yaml"
export PATH="$PATH:/usr/local/bin:/var/lib/rancher/rke2/bin"
args:
executable: /bin/bash
become: yes请建议一下。
发布于 2022-05-30 10:44:08
您的示例是仅用于任务临时的设置远程环境变量。
对于某些服务器,我的方法如下
通过使用
- name: Provide environment variable script file
template:
src: "{{ item }}.j2"
dest: "/etc/profile.d/{{ item }}"
with_items:
- "environment.sh"在例子中
# /etc/profile.d/environment.sh
export ACCOUNT=$(who am i | cut -d " " -f 1)
export DOMAIN=$(hostname | cut -d "." -f 2-4)进一步Q&A
通过这样做,我能够为特定的软件和服务设置持久的环境变量。
https://stackoverflow.com/questions/72387825
复制相似问题