当前位置: 首页 > news >正文

茌平网站建设公司赤峰市做网站公司

茌平网站建设公司,赤峰市做网站公司,饭店的网站建设进行评价,深圳市龙华区房价目录 一.Ansible定义变量 1.用途 2.定义规则 3.变量优先级 二.命令行定义变量 三.定义主机和主机组变量 1.主机变量 #xff08;1#xff09;内置主机变量 #xff08;2#xff09;简单示例 2.主机组变量 四.定义playbook变量 1.通过vars表示定义变量#xff…目录 一.Ansible定义变量 1.用途 2.定义规则 3.变量优先级 二.命令行定义变量 三.定义主机和主机组变量 1.主机变量 1内置主机变量 2简单示例 2.主机组变量 四.定义playbook变量 1.通过vars表示定义变量通过 {{变量名}} 来引用变量 2.通过vars_file指定变量文件 五.定义host_vars和group_vars目录变量 1.主机组变量使用group_vars 2.主机变量只用host_vars 3.以主机变量简单为例演示 六.注册变量 七.vars_prompt交互变量 1.参数解析 2.简单交互案例 3.创建用户和密码示例 1encrypt 2confirm 八.引用变量 1.引用简单定义的变量 2.引用较为复杂定义的变量 一.Ansible定义变量 1.用途 ansible的变量主要用于存储在整个项目中重复使用的一些值来提高创建任务和维护节点的效率 2.定义规则 变量名由字母、数字、下划线组成由字母开头 内置关键字不能作为变量名 3.变量优先级 全局范围内命令行-e设置的变量清单中的ssh变连接变量等playbook及其相关配置vars和vars_file清单中短的其他变量facts变量角色role定义的变量 二.命令行定义变量 如上文所述命令行使用-e 变量名值 设置的变量优先级最高下面举例演示命令行变量覆盖playbook中的变量 [rootmain ~]# cat abc.yaml --- - hosts: webserversvars:myservice: httpd   #原本playbook内容为停掉httpdtasks:- name: test1service:name: {{ myservice }}state: stopped [rootmain ~]# ansible-playbook abc.yaml -e myservicechronyd #运行时指定变量更改为关掉chronyd [rootmain ~]# ansible webservers -m shell -a systemctl status httpd | grep Active serverb | CHANGED | rc0 Active: active (running) since Tue 2023-10-17 14:06:57 CST; 5h 22min ago servera | CHANGED | rc0 Active: active (running) since Tue 2023-10-17 19:25:46 CST; 3min 12s ago [rootmain ~]# ansible webservers -m shell -a systemctl status chronyd | grep Active serverb | CHANGED | rc0 Active: inactive (dead) since Tue 2023-10-17 19:28:30 CST; 35s ago servera | CHANGED | rc0 Active: inactive (dead) since Tue 2023-10-17 19:28:30 CST; 35s ago #运行结果可以看出停掉httpd未生效停chonyd生效命令行给定变量优先级高于playbook给定变量优先级 三.定义主机和主机组变量 1.主机变量 1内置主机变量 在变量前加上ansible_即成为内置变量 部分内置主机关于ssh和提权的变量举例 ansible_ssh_host:指定受管节点主机真实IP地址 ansible_ssh_port:指定通过哪个端口连接受管节点 ansible_ssh_user:指定连接时使用的用户名称 ansibe_connection:指定ssh连接类型local、ssh、paramiko ansible_ssh_pass:ssh连接时使用的密码 ansible_ssh_executable:指定ssh指定的路径 ​ ansible_become:允许特权升级等同于ansible_sudoansible_su ansible_become_user:提权到哪个用户等同于ansible_sudo_useransible_su_user ansbile_become_pass:需要密码时指定密码等同于ansible_sudo_pass ansible_sudo_exec:指定sudo命令路径 2简单示例 [studentworkstation ~]$ vim user.yml #不属于任何组的用户 192.168.2.190 ansible_ssh_userroot ansible_user_passredhat 192.168.2.191 ansible_ssh_userroot ansible_user_passsu123 2.主机组变量 如上例将两台受管节点相等的部分定义为一个变量 [studentworkstation ~]$ vim user.yml 192.168.2.190 ansible_ssh_userroot ansible_user_passredhat 192.168.2.191 ansible_ssh_userroot ansible_user_passsu123 #更改为 192.168.2.190 ansible_user_passredhat 192.168.2.191 ansible_user_passsu123 [webservers:vars] ansible_ssh_userroot 四.定义playbook变量 1.通过vars表示定义变量通过 {{变量名}} 来引用变量 [rootlocalhost ~]# cat httpd.yaml --- - name: install httpd chronyhosts: webserversvars:   #声明在此处定义变量mypackages:     #变量名- httpd- chronymyhttpd: httpd mychronyd: chronydtasks:- name: install themyum:name: {{ mypackages }}   #使用变量state: present- name: start httpdservice:name: {{ myhttpd }}state: started- name: start chronydservice:name: {{ mychronyd }}state: started ​ [rootlocalhost ~]# ansible webservers -m shell -a systemctl status httpd | grep Active serverb | CHANGED | rc0 Active: active (running) since Tue 2023-10-17 14:06:57 CST; 3min 45s ago servera | CHANGED | rc0 Active: active (running) since Tue 2023-10-17 14:06:57 CST; 3min 45s ago [rootlocalhost ~]# ansible webservers -m shell -a systemctl status chronyd | grep Active servera | CHANGED | rc0 Active: active (running) since Tue 2023-10-17 13:29:27 CST; 41min ago serverb | CHANGED | rc0 Active: active (running) since Tue 2023-10-17 13:31:57 CST; 38min ago 2.通过vars_file指定变量文件 [rootmain ~]# cat myvar1.yaml   #vars文件也使用yaml格式 packages:- rpcbind- openssl[rootmain ~]# cat httpd1.yaml --- - name: install rpcbind opensslhosts: webserverstasks:- name: install themyum:name: {{ packages }}   #同样这样使用变量state: presentvars_files:   #指定vars文件- myvar1.yaml   #指定你自己的vars问文件位置这里是当前路径下的myvars1.yaml文件 ​ [rootmain ~]# ansible-playbook httpd1.yaml --syntax-check ​ playbook: httpd1.yaml [rootmain ~]# ansible-playbook httpd1.yaml ​ [rootmain ~]# ansible webservers -m shell -a yum list installed | grep rpcbind servera | CHANGED | rc0 rpcbind.x86_64                       0.2.0-49.el7                     base     serverb | CHANGED | rc0 rpcbind.x86_64                       0.2.0-49.el7                     base     [rootmain ~]# ansible webservers -m shell -a yum list installed | grep openssl servera | CHANGED | rc0 openssl.x86_64                       1:1.0.2k-19.el7                 anaconda openssl-libs.x86_64                   1:1.0.2k-19.el7                 anaconda xmlsec1-openssl.x86_64               1.2.20-7.el7_4                   anaconda serverb | CHANGED | rc0 openssl.x86_64                       1:1.0.2k-19.el7                 anaconda openssl-libs.x86_64                   1:1.0.2k-19.el7                 anaconda xmlsec1-openssl.x86_64               1.2.20-7.el7_4                   anaconda 五.定义host_vars和group_vars目录变量 1.主机组变量使用group_vars group_vars是一个目录这个名称固定必须是和你的inventory文件和ansible.cfg文件位于同一级目录其下创建的文件需要和你主机清单中的组名称一致在这个文件中写入变量和值 2.主机变量只用host_vars host_vars和group_vars相同也是一个目录名称固定必须和inventory文件和ansible.cfg文件位于同一级目录其下创建的文件需要和你主机清单中的主机名称一致清单文件中写的是主机名就写用主机名是IP地址就用IP地址在这个文件中写入变量和值 3.以主机变量简单为例演示 [rootmain ~]# tree /root /root ├── anaconda-ks.cfg ├── ansible.cfg ├── group_vars │   ├── dbservers │   └── webservers ├── host_vars │   ├── servera │   └── serverb ├── httpd1.yaml ├── httpd.yaml ├── myhosts ├── myhttpd.yaml └── myvar1.yaml ​ [rootmain ~]# cat host_vars/servera aname: httpd [rootmain ~]# cat host_vars/serverb bname: mod_ssl ​ [rootmain ~]# cat myhttpd.yaml --- - name: stop servera httpdhosts: serveratasks:- name: stop itservice:name: {{ aname }}     #在剧本中就可以直接用用定义好的主机变量state: stopped - name: install serverb mod_sslhosts: serverbtasks:- name: install ityum:name: {{ bname }}state: present ​ [rootmain ~]# ansible-playbook myhttpd.yaml --syntax-check ​ playbook: myhttpd.yaml [rootmain ~]# ansible-playbook myhttpd.yaml ​ [rootmain ~]# ansible servera -m shell -a systemctl status httpd | grep Active servera | CHANGED | rc0 Active: inactive (dead) [rootmain ~]# ansible serverb -m shell -a yum list installed | grep mod_ssl serverb | CHANGED | rc0 mod_ssl.x86_64                       1:2.4.6-99.el7.centos.1         updates 六.注册变量 注册变量主要是使用register来捕获命令的输出将其保存在一个临时变量中便于进行特定操作。 如下例将id su的结果注册为su并使用debug模块输出su的内容并在playbook执行后的debug结果中判断出该用户是否存在 [rootmain ~]# cat iduser.yaml --- - name: is su existhosts: webserverstasks:- name: test sushell: id suregister: suignore_errors: yes   #便于测试忽略错误- name: echo itdebug:msg: {{ su }} ​ [rootmain ~]# ansible-playbook iduser.yaml ​ PLAY [is su exist] ****************************************************************************************************************************** ​ TASK [Gathering Facts] ************************************************************************************************************************** ok: [servera] ok: [serverb] ​ TASK [test su] ********************************************************************************************************************************** changed: [servera] changed: [serverb] ​ TASK [echo it] ********************************************************************************************************************************** ok: [servera] {msg: {changed: true, cmd: id su, delta: 0:00:00.004109, end: 2023-10-17 19:05:47.215481, failed: false, rc: 0,   #为0表示存在非0不存在start: 2023-10-17 19:05:47.211372, stderr: , stderr_lines: [], stdout: uid1000(su) gid1000(su) groups1000(su),   #有会输出该用户的详细信息没有会提示不存在此用户stdout_lines: [uid1000(su) gid1000(su) groups1000(su)]} } ok: [serverb] {msg: {changed: true, cmd: id su, delta: 0:00:00.004695, end: 2023-10-17 19:05:47.220915, failed: false, rc: 0, start: 2023-10-17 19:05:47.216220, stderr: , stderr_lines: [], stdout: uid1000(su) gid1000(su) groups1000(su), stdout_lines: [uid1000(su) gid1000(su) groups1000(su)]} } ​ PLAY RECAP ************************************************************************************************************************************** servera                   : ok3   changed1   unreachable0   failed0   skipped0   rescued0   ignored0   serverb                   : ok3   changed1   unreachable0   failed0   skipped0   rescued0   ignored0   七.vars_prompt交互变量 用于交互提示用户输入值 1.参数解析 prompt表示对用户的提示信息 private表示用户在输入时是否隐藏输入的信息 default表示如果用户没有输入则此项的默认值 2.简单交互案例 [rootmain ~]# cat register.yaml --- - hosts: webserversvars_prompt:- name: oneprompt: 请输入第一个值private: no- name: twoprompt: 请输入第二个值#default: helloprivate: yestasks:- name: dis one valuedebug: msg{{one}}- name: dis two valuedebug: msg{{two}} #测试结果 [rootmain ~]# ansible-playbook register.yaml 请输入第一个值: nihao 请输入第二个值:             #private为yes此处我输入时会隐藏信息 ​ PLAY [webservers] ******************************************************************************************************************************* ​ TASK [Gathering Facts] ************************************************************************************************************************** ok: [servera] ok: [serverb] ​ TASK [dis one value] **************************************************************************************************************************** ok: [servera] {msg: nihao } ok: [serverb] {msg: nihao } ​ TASK [dis two value] **************************************************************************************************************************** ok: [servera] {       #显示输入的信息msg: hello } ok: [serverb] {msg: hello } ​ PLAY RECAP ************************************************************************************************************************************** servera                   : ok3   changed0   unreachable0   failed0   skipped0   rescued0   ignored0   serverb                   : ok3   changed0   unreachable0   failed0   skipped0   rescued0   ignored0   3.创建用户和密码示例 1encrypt 可以指定在密码处可以指定使用sha512对密码进行哈希加密 2confirm 可以设置重复确认密码两次密码不符合会报“* VALUES ENTERED DO NOT MATCH ” [rootmain ~]# cat register1.yaml --- - hosts: webserversvars_prompt:- name: nameprompt: enter user_nameprivate: no- name: passwdprompt: enter user_passwdprivate: yes#encrypt: sha512_crypt   #confirm: yes           tasks:- name: create himuser:name: {{ name }}password: {{ passwd }} ​ [rootmain ~]# ansible-playbook register1.yaml enter user_name: sulibao enter user_passwd: [WARNING]: Found variable using reserved name: name ​ PLAY [webservers] ******************************************************************************************************************************* ​ TASK [Gathering Facts] ************************************************************************************************************************** ok: [serverb] ok: [servera] ​ TASK [create him] ******************************************************************************************************************************* [WARNING]: The input password appears not to have been hashed. The password argument must be encrypted for this module to work properly. changed: [serverb] changed: [servera] ​ PLAY RECAP ************************************************************************************************************************************** servera                   : ok2   changed1   unreachable0   failed0   skipped0   rescued0   ignored0   serverb                   : ok2   changed1   unreachable0   failed0   skipped0   rescued0   ignored0   ​ [rootmain ~]# ansible webservers -a id sulibao serverb | CHANGED | rc0 uid1001(sulibao) gid1001(sulibao) groups1001(sulibao) servera | CHANGED | rc0 uid1001(sulibao) gid1001(sulibao) groups1001(sulibao) ​ #未加密的密码 [rootmain ~]# ansible webservers -m shell -a cat /etc/shadow | grep sulibao serverb | CHANGED | rc0 sulibao:ansible:19647:0:99999:7::: servera | CHANGED | rc0 sulibao:ansible:19647:0:99999:7::: #加密后 [rootmain ~]# ansible webservers -m shell -a cat /etc/shadow | grep li serverb | CHANGED | rc0 sulibao:ansible:19647:0:99999:7::: li:$6$U0qiY4DnzK8AWcBe$rIFmtpCr.1qU3sxtv90U2bRaZbxgqj1PK9UV4wp6W8zWXigHTfcfuFjJ0AvCZMb0Xe75juLlarm94xNZUnoCX.:19647:0:99999:7::: servera | CHANGED | rc0 sulibao:ansible:19647:0:99999:7::: li:$6$U0qiY4DnzK8AWcBe$rIFmtpCr.1qU3sxtv90U2bRaZbxgqj1PK9UV4wp6W8zWXigHTfcfuFjJ0AvCZMb0Xe75juLlarm94xNZUnoCX.:19647:0:99999:7::: 八.引用变量 1.引用简单定义的变量 [rootmain ~]# cat myvar1.yaml packages:               #类似于定义了一个列表形式的变量- rpcbind- openssl [rootmain ~]# cat httpd1.yaml --- - name: install rpcbind opensslhosts: webserverstasks:- name: install themyum:name: {{ packages }}   #就直接通过“ {{变量名}} ”来引用state: presentvars_files:- myvar1.yaml 2.引用较为复杂定义的变量 [rootmain ~]# cat myvar2.yaml su:           #定义了一个层层嵌套的变量name:tname: sulibaofname: libaosu [rootmain ~]# cat echo.yaml --- - hosts: webserverstasks:- name: echo somethingdebug:msg: {{ su.name.fname }}         #需要使用嵌套定义的变量时需要使用.或者[]来表示一层一层地引用#msg: {{ su[name][fname] }}vars_files:- myvar2.yaml #运行查看结果 [rootmain ~]# ansible-playbook echo.yaml ​ PLAY [webservers] ******************************************************************************************************************************* ​ TASK [Gathering Facts] ************************************************************************************************************************** ok: [serverb] ok: [servera] ​ TASK [echo something] *************************************************************************************************************************** ok: [servera] {msg: libaosu } ok: [serverb] {msg: libaosu } ​ PLAY RECAP ************************************************************************************************************************************** servera                   : ok2   changed0   unreachable0   failed0   skipped0   rescued0   ignored0   serverb                   : ok2   changed0   unreachable0   failed0   skipped0   rescued0   ignored0   ​
http://www.huolong8.cn/news/363012/

相关文章:

  • 网站活动页面公司和公司网站的关系
  • php做网站登陆验证wordpress论坛样式
  • 品牌型网站建设特点手机网站开发+手机模拟器
  • 网站开发代码实例网站开发平台介绍
  • 2018做网站的视频网页制作与网站建设答案
  • 网站怎么 备案在自己的网站上做查分系统
  • 做疏通什么网站推广好响应式
  • 邢台网站建设邢台网站做授权登录
  • 做网站为什么要用php框架企业电话号码大全
  • 网站制作算是什么专业大型网站开发费用
  • 最专业企业营销型网站建设安徽建设工程信息网文件
  • 做家教网站的资源是什么淘宝网的网站建设
  • 江门站官网wordpress 显示二级分类
  • 中国空间站最新消息新闻php网站开发 知乎
  • 咸阳做网站公司电话手机主题制作网站
  • 网站开发工作室 建设 方案品牌网站建设价格天天快递
  • 视频网站制作费用建网站的方法
  • 品牌策划 网站源码公司做网站的价格
  • 执念待重生wordpress天津seo
  • 鹰潭房产网站建设做网站商城的小图标软件
  • 视频网站如何做弹幕wordpress json 制作
  • 三五互联网站管理登录地址是多少wordpress头部文件
  • 有九类商标可以做网站名吗环保东莞网站建设技术支持
  • 厦门网络公司网站开发织梦添加网站音乐
  • dw做网站首页怎么做大连网站建设佳熙科技公司
  • 柳州网站优化国外开源网站系统
  • 新手学做网站 下载电脑用虚拟机做网站
  • 河南建设厅二建公示网站首页gom传奇网站建设
  • 做网站是什么工作阿里云部署网站教程
  • 如何恢复网站什么平台可以免费发广告