内容简介: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入门项目
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript Patterns
Stoyan Stefanov / O'Reilly Media, Inc. / 2010-09-21 / USD 29.99
What's the best approach for developing an application with JavaScript? This book helps you answer that question with numerous JavaScript coding patterns and best practices. If you're an experienced d......一起来看看 《JavaScript Patterns》 这本书的介绍吧!