欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > ansible 批量按用户名创建kerberos主体,并分发到远程主机

ansible 批量按用户名创建kerberos主体,并分发到远程主机

2025/2/26 3:00:38 来源:https://blog.csdn.net/haoxiaoyan/article/details/145322707  浏览:    关键词:ansible 批量按用户名创建kerberos主体,并分发到远程主机

可以批量生产票据并分发目标主机

- name: Configure Kerberos for Hadoop Usershosts: hadoop_serversbecome: nogather_facts: novars:kerberos_server: hadoop01.xuexi.comkeytab_dir: /home/hadoop/hxykeytab_local_dir: ./keytabsprincipals:- hxy- starstasks:- name: Ensure key directory existsansible.builtin.file:path: "{{ keytab_dir }}"state: directorymode: '0755'- name: Create Kerberos principals and generate keytab filesblock:- name: Create a Kerberos principalansible.builtin.command: >kadmin.local -q "addprinc -randkey {{ item }}/{{ inventory_hostname }}@XUEXI.COM"register: addprinc_resultsdelegate_to: "{{ kerberos_server }}"ignore_errors: yesloop: "{{ principals }}"- name: Set facts for successfully created principalsset_fact:created_principals: "{{ created_principals | default([]) + [item.item] }}"when: item.rc == 0loop: "{{ addprinc_results.results }}"- name: Report failed principal creation attemptsansible.builtin.debug:msg: "Failed to create principal for {{ item.item }}/{{ inventory_hostname }}@XUEXI.ICOM: {{ item.stderr }}"when: "'Principal already exists' not in item.stderr and item.rc != 0"loop: "{{ addprinc_results.results }}"- name: Generate keytab file for each principalansible.builtin.command: >kadmin.local -q "xst -k {{ keytab_dir }}/{{ item }}-{{ inventory_hostname }}.keytab -norandkey {{ item }}/{{ inventory_hostname }}@XUEXI.COM"register: xst_resultsdelegate_to: "{{ kerberos_server }}"loop: "{{ created_principals }}"- name: Fetch the keytab files to the control machineansible.builtin.fetch:src: "{{ keytab_dir }}/{{ item }}-{{ inventory_hostname }}.keytab"dest: "{{ keytab_local_dir }}/{{ item }}-{{ inventory_hostname }}.keytab"flat: yesdelegate_to: "{{ kerberos_server }}"when: item is defined and (lookup('file', keytab_dir + '/' + item + '-' + inventory_hostname + '.keytab') is not none)loop: "{{ created_principals }}"- name: Distribute keytab files to each target hostansible.builtin.copy:src: "{{ keytab_local_dir }}/{{ item }}-{{ inventory_hostname }}.keytab"dest: "/data1/tmp/{{ item }}-{{ inventory_hostname }}.keytab"when: item is defined and (lookup('file', keytab_local_dir + '/' + item + '-' + inventory_hostname + '.keytab') is not none)loop: "{{ created_principals }}"delegate_to: "{{ inventory_hostname }}"- name: Clean up keytab files on Kerberos serveransible.builtin.file:path: "{{ keytab_dir }}/{{ item }}-{{ inventory_hostname }}.keytab"state: absentwhen: item is defineddelegate_to: "{{ kerberos_server }}"loop: "{{ created_principals }}"- name: Clean up local keytab files on control machineansible.builtin.file:path: "{{ keytab_local_dir }}/{{ item }}-{{ inventory_hostname }}.keytab"state: absentwhen: item is definedloop: "{{ created_principals }}"run_once: yes


 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词