01 2023 档案
摘要:我们可以把不容易变动的功能放在父模板中,其他模板只需要继承改模板。 举例说明: 第一步创建父模板 # cat pod-parent.yaml.j2 apiversion: v1 kind: Pod metadata: {% block metadata %} {% endblock %} spec:
阅读全文
摘要:{# 这是一行注释 #} {{ name }} {# 定义变量 #} {% set age=32 %} {{ age }} {# 比较运算 #} {{ 1 == 1 }} {{ 1 != 1 }} {{ 1 > 1 }} {{ 1 >= 1 }} {{ 1 < 1 }} {{ 1 <= 1 }} {
阅读全文
摘要:第一步:生成目录结构 config_file |_templates | |_nginx.conf.j2 |_nginx.conf 第二步:写一个用于解析模板的函数 from jinja2 import PackageLoader,Environment def j2(package_name,pa
阅读全文
摘要:Jinja2 是一个 Python 的功能齐全的模板引擎。它有完整的 unicode 支持,一个可选 的集成沙箱执行环境,被广泛使用,以 BSD 许可证授权 pip install Jinja2==3.0.1 接下来我们测试模板解析 from jinja2 import Template templ
阅读全文
摘要:示例1 可以理解为: for item in groups.ungrouped: print(item) - hosts: all tasks: - name: debug debug: msg: "{{ item }}" with_items: "{{ groups.ungrouped }}" -
阅读全文
摘要:block 可以将多个task任务组合在一起执行,支持when判断,支持类似python中的try 语句。 python 语法举例: try: print(1/0) except: print(2) finally: print(3) block 举例: rescue 字面意识救援 - hosts:
阅读全文
摘要:failed_when 相当于exit,可以理解为: for i in range(10): if i >5: exit else: print(i) - hosts: all tasks: - name: ansible_os_family debug: msg: "{{ ansible_os_f
阅读全文
摘要:| 参数 | 释义 | | | | | string | 判断字符串 | | upper | 判断全大写 | | lower | 判断全小写 | - hosts: all tasks: - name: test string vars: msg: ABC debug: msg: "{{ msg }}
阅读全文
摘要:特别注意:这些文件的判断是用于判断ansible 运维主机上的文件,而不是远程主机 | 参数 | 释义 | | | | | file | 等同bash 中[ -f filename ] | | directory | 等同bash 中[ -d filename ] | | link | 等同bash
阅读全文
摘要:常常用于判断前一个命令执行的结果. | 参数 | 释义 | 示例 | | | | | | success | 执行状态为成功为真 | when: result is success | | succeeded | | | | failure | 执行状态为失败为真 | when: result is
阅读全文
摘要:| 参数 | 释义 | 示例 | | | | | | defined | 变量已定义 | when: username is defined | | undefind | 变量未定义 | when: username is undfined | | none | 变量已定义未赋值 | when: u
阅读全文
摘要:判断添加用户 - hosts: all vars: - username: test1 tasks: - name: detect whether the user exists shell: id {{ username }} register: result ignore_errors: tru
阅读全文
摘要:| 逻辑运算 | 释义 | | | | | and | 逻辑与 | | or | 逻辑或 | | not | 逻辑取反 | 示例一: 等同于: if ansible_distribution == "CentOS" and ansible_distribution_major_version ==
阅读全文
摘要:| 比较符 | 释义 | | | | | == | 等于 | | != | 不等 | | < | 小于 | | <= | 小于等于 | | > | 大于 | | >= | 大于等于 | 示例一: 需要注意 when 使用变量时不需要 {{}} - hosts: all tasks: - name:
阅读全文
摘要:package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { fmt.Fprint(w, "Hello, World
阅读全文
摘要:功能类似于: 列表元素数量上要一一对应 for i in zip([1,2,3],['a','b','c']): print(i) - hosts: all tasks: - name: debug debug: msg: "{{ item }}" with_together: - ["a","b"
阅读全文
摘要:添加索引 - hosts: all tasks: - name: debug debug: msg: "{{ item }}" with_indexed_items: - [1,2,3] - ['a','b','c','d'] - hosts: all tasks: - name: debug de
阅读全文
摘要:with_nested 和with_cartesian 实现的功能相同。嵌套循环可以理解为: nest 英文嵌套 cartesian 英文笛卡尔积 for i in [1,2,3]: for j in ['a','b','c','d']: print(i,j) - hosts: all tasks:
阅读全文
摘要:- hosts: all tasks: - name: debug debug: msg: "{{ item.key }} 的名字叫 {{ item.value.name }}" with_dict: - user01: name: zhangsan age: 30 - user02: name:
阅读全文
摘要:with_list 不展开循环嵌套的列表。功能类似于 for i in zip([1,2,3],['a','b','c']): print(i) - hosts: all tasks: - name: debug debug: msg: "{{ item }}" with_list - ["a","
阅读全文
摘要:在tasks 中注册变量set_fact,该变量可以跨tasks调用 - hosts: 127.0.0.1 tasks: - set_fact: var: "value" - name: debug: msg: "{{ var }}" - hosts: 127.0.0.1 tasks: - name
阅读全文
摘要:可以通过 ansible 127.0.0.1 -m setup查看支持的内置变量 - hosts: 127.0.0.1 tasks: - name: debug debug: msg: "hostname: {{ ansible_fqdn }} ip: {{ ansible_default_ipv4
阅读全文
摘要:每一个task 执行后都有一些返回信息我们可以通过 register 把这些返回信息赋值给变量 - hosts: 127.0.0.1 tasks: - name: mkdir file: path: /tmp/1 state: directory owner: root register: resu
阅读全文
摘要:示例1 - hosts: 127.0.0.1 vars_prompt: - name: host prompt: "please input your hostip" - name: port prompt: "please input your port" tasks: - name: debug
阅读全文
摘要:vars_files 可以把var定义的变量分离出来方便修改和复用 - hosts: 127.0.0.1 vars_files: - ./var1.yaml tasks: - name: debug debug: msg: http://{{ bind.ip }}:{{ bind.port }} #
阅读全文
摘要:支持 字典格式、列表格式。定义和引用完全兼容python格式 {"ip": "127.0.0.1","port": "8000"} [{"ip": "127.0.0.1"},{"port": "8000"}] ["bind":{"ip": "127.0.0.1"},{"port": "8000"}]
阅读全文
摘要:tags 可以给tasks打标签,之后按照标签有选择的执行任务 - hosts: 127.0.0.1 tasks: - name: mkdir tags: - mkdir1 file: path: /tmp/testdir/1 state: directory recurse: yes owner:
阅读全文
摘要:第一种类型 - hosts: 127.0.0.1 tasks: - name: mkdir file: path: /tmp/testdir/1 state: directory recurse: yes owner: test - name: touch file: path: /tmp/test
阅读全文
摘要:- hosts: all tasks: - name: ping test ping: - name: from remote host copy file fetch: src: /etc/hosts dest: . owner: root mode: 0600 - hosts: 127.0.0.
阅读全文
摘要:##### ping ```bash ansible all -m ping ``` ##### fetch ```bash # ansible-doc -s fetch 从远端拉取文件 ansible 127.0.0.1 -m fetch -a "src=/etc/hosts dest=/tmp
阅读全文
摘要:默认管理清单文件 /etc/ansible/hosts 可以在配置清单中配置 主机变量 群组变量 # /etc/ansible/hosts [master] 55.3.139.9 var='master01' 55.3.139.1[0:1] [node] qhnosqlnode[1:15] [k8s
阅读全文
摘要:主机环境CentOS Linux release 7.6.1810 (Core) yum install epel-release yum install ansible -y ansible 127.0.0.1 -m ping 127.0.0.1 | SUCCESS => { "ansible_f
阅读全文
摘要:cat>>/etc/profile<<EOF export JAVA_HOME=/tools/jdk-11.0.2 export JAVA_JRE=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib:. export P
阅读全文
摘要:cri container runtime interface --> docker containerd oci open container interfac 实现了cri 与操作系统的联动 cni container network interface csi container storag
阅读全文