用js做自适应网站,wordpress显示时间插件下载,济宁 做网站,wordpress 联系我们一、playbook和ad hoc命令
ad hoc命令是单行#xff0c;一个简单的任务#xff0c;运行一次。ansible真正强大的地方是使用ansible的playbook重复运行多次复杂的任务。
一个play是是一组有序的任务#xff0c;该paly对应着在inventory被选择的主机。一个playbook是一个包含…一、playbook和ad hoc命令
ad hoc命令是单行一个简单的任务运行一次。ansible真正强大的地方是使用ansible的playbook重复运行多次复杂的任务。
一个play是是一组有序的任务该paly对应着在inventory被选择的主机。一个playbook是一个包含若干个paly的text文本文件。
plays让你将又长又复杂的管理任务变的简单。在palybook中你可以用易懂和立即能运行的格式将tasks保存在play中。tasks本身由于书写方式的原因就是一个一部一部部署你的架构或者应用的文档
二、playbook的格式
playbook通常被定义为扩展名为yml的文件。playbook主要使用空格字符来指定它的数据结构。 YAML没有严格的需求不强制要求多少个空格。但是有两个基本规则: 数据元素在同级必须有同样的缩进 一个对象是另一个对象的子对象时必须比父对象缩进更多
注意只有空格可以使用不能用tab。如果你使用vim编辑器你可以通过在你的家目录下创建.vimrc文件并且添加autocmd FileType yaml setlocal ai ts2 sw2 et来将tab变成两个空格。
--- ## 表示剧本开始
- name: this is my first play ## 第一个play的名字hosts: hostname ## 被管理主机remote_user: ## 使用那个用户来执行优先级最高become: yes ## 是否提权前提是该用户拥有能够提权的操作tasks: - name: create a new user ## task的名字user: ## 执行的模块name: nana state: present
三、写一个简单的playbook
[rootcontrol ansible_manage]# cat play_book/first.yml
--- ## 表示剧本开始
- name: this is my first play ## 第一个play的名字hosts: manage3 ## 被管理主机tasks: - name: create a new user ## task的名字user: ## 执行的模块name: nana state: present
级别上play大于task大于module平级缩进要一样
这个playbook只有一个play这个play的被管理主机是manage3里面有一个task这个task的名字叫做create a new user。这个task使用的user模块创建了nana用户
运行playbook
[rootcontrol ansible_manage]# ansible-playbook play_book/first.ymlPLAY [this is my first play] ***************************************************************************************
TASK [Gathering Facts] *********************************************************************************************
ok: [manage3]
TASK [create a new user] *******************************************************************************************changed: [manage3]
PLAY RECAP *********************************************************************************************************manage3 : ok2 changed1 unreachable0 failed0 skipped0 rescued0 ignored0
四、playbook的详细输出
运行的时候显示详细信息 -v -vv常用 -vvv -vvvv
## 不加-v
[rootcontrol ansible_manage]# ansible-playbook play_book/remove_nana_user.yamlPLAY [this is my first play] ***************************************************************************************
TASK [Gathering Facts] *********************************************************************************************ok: [manage3]TASK [create a new user] *******************************************************************************************changed: [manage3]PLAY RECAP *********************************************************************************************************manage3 : ok2 changed1 unreachable0 failed0 skipped0 rescued0 ignored0 ## 加一个-v
[rootcontrol ansible_manage]# ansible-playbook play_book/remove_nana_user.yaml -v
Using /root/ansible_manage/ansible.cfg as config filePLAY [this is my first play] ***************************************************************************************
TASK [Gathering Facts] *********************************************************************************************ok: [manage3]TASK [create a new user] *******************************************************************************************ok: [manage3] {changed: false, name: nana, state: absent} ## 多了这一行PLAY RECAP *********************************************************************************************************manage3 : ok2 changed0 unreachable0 failed0 skipped0 rescued0 ignored0 ## 加-vv
[rootcontrol ansible_manage]# ansible-playbook play_book/remove_nana_user.yaml -vv
ansible-playbook [core 2.14.9]config file /root/ansible_manage/ansible.cfgconfigured module search path [/root/.ansible/plugins/modules, /usr/share/ansible/plugins/modules]ansible python module location /usr/lib/python3.9/site-packages/ansibleansible collection location /root/.ansible/collections:/usr/share/ansible/collectionsexecutable location /usr/bin/ansible-playbookpython version 3.9.18 (main, Sep 7 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] (/usr/bin/python3) jinja version 3.1.2libyaml True
Using /root/ansible_manage/ansible.cfg as config file
Skipping callback default, as we already have a stdout callback.
Skipping callback minimal, as we already have a stdout callback.
Skipping callback oneline, as we already have a stdout callback.PLAYBOOK: remove_nana_user.yaml ************************************************************************************1 plays in play_book/remove_nana_user.yamlPLAY [this is my first play] ***************************************************************************************
TASK [Gathering Facts] *********************************************************************************************task path: /root/ansible_manage/play_book/remove_nana_user.yaml:2
ok: [manage3]TASK [create a new user] *******************************************************************************************task path: /root/ansible_manage/play_book/remove_nana_user.yaml:5
ok: [manage3] {changed: false, name: nana, state: absent}PLAY RECAP *********************************************************************************************************manage3 : ok2 changed0 unreachable0 failed0 skipped0 rescued0 ignored0
假装运行只是模拟运行但是实际上没有执行 -C