内容简介:Ansible的hosts文件在/etc/ansible目录下,在hosts中添加你需要管理的远程主机的信息后,ansible才可以顺利的管理这些机器。添加一台机器:添加一个机器组:
Ansible的hosts文件在/etc/ansible目录下,在hosts中添加你需要管理的远程主机的信息后,ansible才可以顺利的管理这些机器。
添加一台机器:
[host1] 192.168.1.104 复制代码
添加一个机器组:
[host2] 192.168.1.101 192.168.3.44 192.168.5.201 复制代码
添加一台带参数的机器:
[host3] 192.168.5.67 ansible_sudo_pass='123' 复制代码
修改ansible.cfg
ansible.cfg是Ansible的配置文件,保存在/etc/ansible目录下。如果需要使用become进行权限切换,或者生成日志等功能,就需要修改ansible.cfg中的设置。
设置切换用户时询问密码:
[privilege_escalation] #become=True #become_method=sudo #become_user=root become_ask_pass=True 复制代码
设置生成日志:
log_path = /etc/ansible/log/ansible.log 复制代码
编写Ansible-playbook
Playbook是yaml格式文件。
--- - name: say 'hello world' hosts: host1 #要执行playbook的机器或机器组,在hosts文件中设置 tasks: - name: echo 'hello world' #Task的名称 command: echo 'hello world' #Task执行的Module,除command外还可以是shell,copy,apt等 register: result - name: print stdout debug: msg: "" 复制代码
显示playbook中命令结果
ansible-playbook默认不显示执行的输出,如果需要获取命令执行的结果,可以使用以下方法。
方法一:
ansible-playbook -v test.yaml 复制代码
使用"-v"参数使playbook输出全部的运行结果,但这样输出会非常多,格式也比较乱。
方法二:
tasks: -name: test shell: echo "just test" register: test_output -name: show output debug: var=test_output.stdout verbosity=0 复制代码
使用register将命令的输出结果保存为变量,然后使用debug module将变量输出。这种方法可以方便的获取命令的运行结果。
使用become切换用户
在使用become可以在playbook切换用户来执行命令。比如需要在root下执行某一个命令,就可以使用become功能。
tasks: -name: change to root user become: yes become_user: root become_method: sudo shell: echo "test" 复制代码
关于become有几个注意事项:
- 如果become的某个选项没有配置的话,会使用ansible.cfg中的设置。比如默认become_user是test,那么在不指定become_user,但是become: yes的话,会默认切换到test用户。
- 在ansible.cfg中将become_ask_pass设置为True,这样在执行playbook前需要输入要切换的用户的密码。比如要切换到root用户,就需要输入root用户的密码。如果不这样设置,会切换不成功导致执行失败,且失败信息是等待超时。
- 在become完成后必须要有操作module,也就是说不能只执行become,否则会报错“ERROR! no action detected in task”
- 切换只在这一个Task中生效,下一个Task也需要切换用户执行的话,需要重新执行become操作
使用Ansible与Slack交互
首先需要去slack中申请一个App,然后记下生成的token。在yaml文件中只需要加入下面一段代码就可以向slack发送信息。
- name: send notification to slack slack: token: 'AAAAAA/BBBBBBB/CCCCCCCC' #申请的App的token msg: 'just test' username: 'test_user' delegate_to: localhost #指派给localhost执行这段代码 复制代码
delegate_to可以将一个task分配给特定的主机执行,通过delegate_to可以在一个playbook让不同的机器执行不同的task。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- TiDB入门(四):从入门到“跑路”
- MyBatis从入门到精通(一):MyBatis入门
- MyBatis从入门到精通(一):MyBatis入门
- Docker入门(一)用hello world入门docker
- 赵童鞋带你入门PHP(六) ThinkPHP框架入门
- 初学者入门 Golang 的学习型项目,go入门项目
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
XML 在线格式化
在线 XML 格式化压缩工具
html转js在线工具
html转js在线工具