Python自动化运维_playbook

文章讲述了如何使用AnsiblePlaybook进行用户管理和文件复制操作。包括将/etc/passwd文件复制到指定主机,设置文件属主、属组和权限;创建具有特定uid的用户lisi并在另一主机上删除;以及使用循环结构批量创建多个用户如tom,jerry和cat。
摘要由CSDN通过智能技术生成
(1) 编写一个playbook,hosts为node1和node2,复制/etc/passwd文件,属主为upwen,属组为upwen,权限为0600;

首先创建upwen:ansible all -m user -a "name=upwen state=present"

创建代码:vim test.yml

执行代码:ansible-playbook test.yml

并验证结果:ansible all -a ' ls -1 /home/upwen/passwd '

---
- name: copy
  hosts: all
  tasks:
  - name: copy passwd
    copy:
     src: /etc/passwd
     dest: /home/upwen/passwd
     owner: upwen
     group: upwen
     mode: "0600"

(2) 编写一个playbook,在node1和node2上执行play1,创建用户lisi,并指定其uid为1999;在node1上执行play2,删除用户lisi;(playbook执行后的结果输出,以及通过临时命令查看/etc/passwd文件当中的用户信息)

检查新建用户:cut -d : -f 1 /etc/passwd

---
- name: play1
  hosts: all
  tasks:
  - name: creat user
    user:
     name: lisi
     uid: 1999
     shell: /bin/lisi
- name: play2
  hosts: node1
  tasks:
  - name: delete user
    user:
     user: lisi
     state: absent
     remove: yes
     
(3) 编写一个playbook,利用循环结构,在node1和node2上分别创建三个用户,tom,jerry,cat;(执行完成之后查看并验证结果)
---
- name: creat user and loop
  hosts: all
  tasks:
  - name: creat user
    user:
     name: "{{item}}"
     state: present
    loop:
     - tom
     - jerry
     - cat

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ansible 是一种自动化运维工具,可以用于管理和配置多个计算机系统。它使用 Python 编写,并且提供了一个简单易用的 DSL(Domain Specific Language)来描述系统配置和部署任务。使用 Ansible,可以通过编写 Playbooks 来定义系统配置和任务,然后通过 SSH 协议远程执行这些任务。 在 Python 中使用 Ansible,可以使用 Ansible 的 Python API 来编写自动化脚本。这个 API 提供了一系列的模块和方法,可以用于远程执行命令、复制文件、安装软件等操作。你可以通过在 Python 脚本中导入 Ansible 的相关模块,然后调用相应的方法来完成自动化运维任务。 以下是一个简单的示例代码,演示了如何使用 Ansible 的 Python API 来执行远程命令: ```python from ansible import context from ansible.playbook import Playbook from ansible.executor.playbook_executor import PlaybookExecutor # 设置 Ansible 的上下文 context.CLIARGS = { 'listtags': False, 'listtasks': False, 'listhosts': False, 'syntax': False, 'connection': 'ssh', 'module_path': None, 'forks': 100, 'remote_user': 'root', 'private_key_file': None, 'ssh_common_args': None, 'ssh_extra_args': None, 'sftp_extra_args': None, 'scp_extra_args': None, 'become': None, 'become_method': None, 'become_user': None, 'verbosity': None, 'check': False, 'start_at_task': None, } # 定义 Playbook 的路径和主机列表 playbook_path = '/path/to/playbook.yaml' host_list = '/path/to/hosts' # 创建 Playbook 对象和执行器 playbook = Playbook.load(playbook_path) executor = PlaybookExecutor( playbooks=[playbook], inventory=host_list, variable_manager=playbook._variable_manager, loader=playbook._loader, ) # 执行 Playbook executor.run() ``` 上面的代码中,我们首先设置了 Ansible 的上下文,然后定义了 Playbook 的路径和主机列表。接着创建了 Playbook 对象和执行器,并最终执行了 Playbook。 需要注意的是,上述示例代码中的相关路径和参数需要根据实际情况进行修改。另外,为了运行该示例代码,你需要安装 ansible-python 包。可以使用 pip 命令进行安装: ``` pip install ansible ``` 希望这个示例能帮助到你开始使用 Ansible 进行自动化运维Python 编程。如果有更多问题,请随时提问!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值