加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

Ansible:检查我的用户是否存在于远程主机上,否则使用root用户连

发布时间:2020-12-14 01:02:45 所属栏目:Linux 来源:网络整理
导读:我正在编写一个Ansible脚本,它应该在运行Debian或CentOS的每个主机上更新openssl.在主机上,我们的SSH密钥是为我自己的用户或root用户存放的.我想检查我的用户是否存在于主机上,如果不是,我想要与root用户进行身份验证.有可能这样做吗?我尝试使用bash命令,但
我正在编写一个Ansible脚本,它应该在运行Debian或CentOS的每个主机上更新openssl.在主机上,我们的SSH密钥是为我自己的用户或root用户存放的.我想检查我的用户是否存在于主机上,如果不是,我想要与root用户进行身份验证.有可能这样做吗?我尝试使用bash命令,但我想在运行任务之前检查我的用户是否存在.也许我的问题有其他解决方案,但我不知道.运行此playbook会引发语法错误.我的脚本现在看起来像这样:

---
- hosts: "{{ host_group }}" 
  remote_user: "{{ username }}"
  tasks:

# Check whether there's a existinig user or whether you have to use root
    - name: Check whether there's your user on the machine
      action: shell /usr/bin/getent passwd $username | /usr/bin/wc -l | tr -d ''
      register: user_exist
      remote_user: root
      when: user_exist.stdout == 0
      tags:
         - users

# Install openssl on Ubuntu or Debian
    - name: Install openssl on Ubuntu or Debian
      become: True
      become_user: root
      apt: name=openssl state=latest
      when: ansible_distribution == 'Debian' or ansible_distribution == 'Ubuntu'

# Install openssl on CentOS or RHEL
    - name: Install openssl on CentOS or RHEL
      become: True
      become_user: root
      yum: name=openssl state=latest
      when: ansible_distribution == 'CentOS' or ansible_distribution == 'Red Hat Enterprise Linux'

解决方法

您可以先使用local_action测试连接.
Ansible需要知道如何连接到主机,否则它将触发主机无法访问错误并跳过该主机的剩余任务.
像这样的东西:

- hosts: myservers
  gather_facts: no  # or it will fail on the setup step
  tasks:
    - name: Test user
      local_action: "command ssh -q -o BatchMode=yes -o ConnectTimeout=3 {{ inventory_hostname }} 'echo ok'"
      register: test_user
      ignore_errors: true
      changed_when: false

    - name: Do useful stuff
      remote_user: "{{ test_user | success | ternary(omit,'root') }}"
      command: echo ok

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读