Ansible为了层次化、结构化地组织Playbook,使用了角色(roles),roles可以根据层次型结构自动装载变量文件、task以及handlers等。简单来讲,roles就是通过分别将变量、文件、任务、模块及处理器放置于单独的目录中,并可以便捷地include它们。roles一般用于基于主机构建服务的场景中,但也可以用于构建守护进程等场景中。 //roles...
(1)roles目录格式 roles/#角色总目录,其每个子目录就是一个角色目录nginx/#角色目录,一个角色相当于playbook中的一个play主题,目录名就是角色名files/#存放copy、script、unarchive等模块默认调用的文件templates/#存放template模块默认调用的模板文件tasks/mian.yml#定义此角色的tasks任务列表handlers/mian.yml#定义此角...
逻辑——将ansible服务器的脚本拷贝到远程主机,执行,并且删除 -a "/PATH/TO/SCRIPT_FILE“ ansible websrvs -m script -a /data/f1.sh 1. 写一个脚本hello.sh,加上执行权限,然后远程执行 ansible all -m script -a “/root/hello.sh” copy Copy:从主控端复制文件到远程主机 参数: src源, dest目的 ...
Playbook可以定制配置,可以按照指定的操作步骤有序执行,支持同步和异步方式。 我们完成一个任务,例如安装部署一个httpd服务,我们需要多个模块(一个模块也可以称之为task)提供功能来完成。 而playbook就是组织多个task的容器,他的实质就是一个文件,有着特定的组织格式, 它采用的语法格式是YAML(Yet Another Markup Langua...
roles/ role_name/:定义的role的名字 file/: 用于存放copy或script等模块调用的函数 tasks/: 用于定义各种task,此目录一定要有main.yml;其他文件需要main.yml包含调用 handlers/: 用于定义各种handlers,此目录一定要有main.yml;其他文件需要main.yml包含调用 vars/: 用于定义variables,此目录一定要有main.yml;其他文...
-name:sh chkrootkit script:cmd:/opt/chkrootkit-0.55/scripts/chkrootkit_exec.sh 参数 chdir: 在运行脚本之前,在远程节点上切换到这个目录。 cmd: 要运行的本地脚本的路径,后跟可选参数。 creates: 远程节点上的文件名,如果它已经存在,则不会运行此步骤。
Modules:Ansible 执行命令的功能模块, 一般为 Ansible 内置模块, 也可以自定义第三方模块。 Plugins:用于补充模块的功能,可以自行编写插件。 Ansible 安装 # Centos yum-y install ansible # Ubuntu apt install-y ansible # 源码安装 git clone https://github.com/ansible/ansible # 使用 pip 命令安装 pip insta...
- name: service script shell: /bin/cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld - name: start service service: name=mysqld state=started enabled=yes - name: PATH variable copy: content='PATH=/usr/local/mysql/bin:$PATH' dest=/etc/profile.d/mysql.sh ...
定义了一些脚本等 snsible websrvs -m script -a 'f1.sh' Copy:从服务器复制文件到客户端, ansible srv -m copy -a "src=/root/f1...在运行自下而下某playbook时,如果中途发生错误,所有已执行任务都将回滚,因此,在更正playbook后重新执行一次即可 task的目的是使用指定的参数执行模块,而在模块参数中...
2、Copy模块 # 实现Ansible服务端到⽬标主机的⽂件传送 - name:copy a file copy: 'remote_src=no src=roles/testbox/files/foo.sh dest=/root/foo.sh mode=0644 force=yes'3、Stat模块 # 获取远程⽂件状态信息 - name:check if foo.sh exists stat: ‘path=/root/foo.sh'register: script_stat...