ansible
发布日期:2022-02-12 16:07:01
浏览次数:10
分类:技术文章
本文共 3208 字,大约阅读时间需要 10 分钟。
[kubernetes:children]masterminion#master组 [master]100.100.111.108 ansible_ssh_pass='ASx@7NCL' ansible_port=22 kuberole=[minion,master]#minion组 [minion]100.100.111.108 ansible_ssh_pass='ASx@7NCL' ansible_port=22 kuberole=[minion,master]10.21.59.55 ansible_ssh_pass='2yxSf_DA' ansible_port=22 kuberole=[minion]#参数[kubernetes:vars]data_dir=/data
---- name: one example remote_user: root hosts: kubernetes tasks: #shell,debug,register #将shell命令执行的输出保存在disk_status变量里面 - name: Query the disk_status shell: fdisk -l register: disk_status #打印出disk_status变量的属性值 - name: Print disk debug: var=' disk_status.stdout ' #stat,register #将查询到的文件信息保存在dir_exist里面 - name: Query file stat: path={ { data_dir }} register: dir_exist #如果dir_exist记录的文件不存在则创建一个{ { data_dir }}相应的目录 - name: Create the data directory shell: mkdir -p { { data_dir }} when: not dir_exist.stat.exists
例子:
使用ansible脚本清理none镜像的一个demo。
inventory:
[node]47.98.218.146 ansible_ssh_pass='asasasas' ansible_port=2247.98.218.147 ansible_ssh_pass='asasasas' ansible_port=2247.98.218.148 ansible_ssh_pass='asasasas' ansible_port=2247.98.218.149 ansible_ssh_pass='asasasas' ansible_port=2247.98.218.150 ansible_ssh_pass='asasasas' ansible_port=22
clear_image.yaml
---- name: clear none images remote_user: root hosts: node tasks: - name: Query none images shell: docker images -f "dangling=true" -q register: docker_images - name: Print none images debug: var=' docker_images.stdout ' - name: Delete none image shell: docker rmi $(docker images -f "dangling=true" -q)
ansible-playbook -i inventory image-clear.yaml
用ansible可读性可维护性可扩展性增强了很多。
-
创建Roles
创建roles时一般需要以下步骤:首先创建以roles命名的目录。然后在roles目标下分别创建以个角色名称命令的目录,如websevers等,在每个角色命令的目录中分别创建files、handlers、tasks、templates、meta、defaults和vars目录,用不到的目录可以创建为空目录。最后在Playbook文件中调用各角色进行使用 - roles内各目录含义解释
files:用来存放由copy模块或script模块调用的文件。
templates:用来存放jinjia2模板,template模块会自动在此目录中寻找jinjia2模板文件。 tasks:此目录应当包含一个main.yml文件,用于定义此角色的任务列表,此文件可以使用include包含其它的位于此目录的task文件。 handlers:此目录应当包含一个main.yml文件,用于定义此角色中触发条件时执行的动作。 vars:此目录应当包含一个main.yml文件,用于定义此角色用到的变量。 defaults:此目录应当包含一个main.yml文件,用于为当前角色设定默认变量。 meta:此目录应当包含一个main.yml文件,用于定义此角色的特殊设定及其依赖关系。
- 案例:使用roles安装LAMP架构
-
1:创建httpd、mysql、php角色名称目录,并在其目录下创建files、handlers、tasks、templates、meta、defaults和vars目录
# mkdir /etc/ansible/roles/httpd/{files,templates,tasks,handlers,vars,defaults,meta} -p# mkdir /etc/ansible/roles/mysql/{files,templates,tasks,handlers,vars,defaults,meta} -p# mkdir /etc/ansible/roles/php/{files,templates,tasks,handlers,vars,defaults,meta} -p# touch /etc/ansible/roles/httpd/{defaults,vars,tasks,meta,handlers}/main.yml# touch /etc/ansible/roles/mysql/{defaults,vars,tasks,meta,handlers}/main.yml# touch /etc/ansible/roles/php/{defaults,vars,tasks,meta,handlers}/main.yml
- 编写httpd模块
- 安装httpd服务
-
修改httpd.conf配置文件
# vim /etc/ansible/roles/httpd/tasks/main.yml - name: ensure apache is at the latest version yum: pkg={ { servicenames}} state=latest template: src=/etc/ansible/templates/httpd.conf.j2 dest=/etc/httpd/conf/httpd.conf - name: restart httpd server service: name=httpd enabled=true state=restarted
-
定义变量
# vim /etc/ansible/roles/httpd/vars/main.yml# servicenames: httpd
转载地址:https://blog.csdn.net/wellsmith/article/details/94448091 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年03月28日 05时40分09秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
手把手教你实现Unity与Android的交互
2019-04-27
手把手教你使用Unity的Behavior Designer
2019-04-27
Unity3D摄像机裁剪——NGUI篇
2019-04-27
lua深拷贝一个table
2019-04-27
app运行提示Unable to Initialize Unity Engine
2019-04-27
spring boot 与 Ant Design of Vue 实现修改按钮(十七)
2019-04-27
spring boot 与 Ant Design of Vue 实现删除按钮(十八)
2019-04-27
spring boot 与 Ant Design of Vue 实现新增角色(二十)
2019-04-27
spring boot 与 Ant Design of Vue 实现修改角色(二十一)
2019-04-27
spring boot 与 Ant Design of Vue 实现删除角色(补二十一)
2019-04-27
spring boot 与 Ant Design of Vue 实现左侧组织树(二十三)
2019-04-27
spring boot 与 Ant Design of Vue 实现新增组织(二十四)
2019-04-27
spring boot 与 Ant Design of Vue 实现修改组织(二十五)
2019-04-27
spring boot 与 Ant Design of Vue 实现删除组织(二十六)
2019-04-27
spring boot 与 Ant Design of Vue 实现新增用户(二十八)
2019-04-27
spring boot 与 Ant Design of Vue 实现修改用户(二十九)
2019-04-27
spring boot 与 Ant Design of Vue 实现删除用户(三十)
2019-04-27