设为首页 收藏本站
查看: 926|回复: 0

[经验分享] A.ArmStrong

[复制链接]

尚未签到

发表于 2018-1-2 10:59:34 | 显示全部楼层 |阅读模式
  一、ansible简介
  ansible是一种自动化运维工具。实现批量操作系统配置、批量程序部署、批量命令运行等功能。
  ansible工作在agentless模式下,并且具有幂等性(幂等性不会重复执行相同指令,例如不会重复安装软件,当你希望一个文件中存在一行内容为 "aaaaaa", 如果不存在就会插入,如果存在就会跳过)。
  ansible架构大致如下:

  二、基本使用
  1、定义Host Inventory   /etc/ansible/hosts
[webhosts]

  172.16.10.22 ansible_ssh_user=root ansible_ssh_pass=passwd
  172.16.10.33 ansible_ssh_user=root ansible_ssh_pass=passwd
  ## ansible_ssh_user=root 是登陆用户
  ## ansible_ssh_pass=passwd 是ssh登陆密码
  ## 使用 ansible-doc MOD 查看模块的用法,例如 ansible-doc copy
  2.示例使用
  查看时间信息

  添加用户,user模块

  安装软件和启动服务

  支持管道服务

  三、YAML语言介绍
  YAML是一种可读性高的用来表达资料序列的格式。
  YAML Ain't Markup Language即YAML不是XML。
  YAML的可读性好
  YAML和脚本语言的交互性好
  YAML使用实现语言的数据类型
  YAML有个一致的信息模型
  YAML表达能力强扩展性好
  1. YAML 简介
  *********************************************YAML语法
  YAML语法可以简单表达清单、散列表、标量等数据结构。其结构Structure通过空格展示,序列Sequence的项用“-”来代表
  Map里的键值对用“:”分割。下面是一个示例:
  name: Jonh Smith
  age: 41
  gender: Male
  YAML 2个重要的结构组成部分list和directory
  ********************************************list
  列表的所有元素均使用“-”开始,例如:
  - Apple
  - Orange
  - Strawberry
  - Mango
  ********************************************dictionary
  字典通过key与value标识,例如:
  ---
  name: Example Developer
  job: Developer
  skill: Elite
  也可以将key:value放置于{ }进行表示,例如:
  ---
  {name: Example Developer, job: Developer, skill: Elite}
  2.YAML的变量
  ########################### 变量命名
  变量名仅支持字母、数字和下划线并且只能以字母开头
  facts 是由正在通信的远程目标主机发回的信息,这些信息保存在ansible变量中。获取facts可使用如下命令:
  # ansible webservers -m setup
  ########################### 自定义变量
  使用关键字vars来定义变量
  vars:
  var_name: value
  ########################### 变量引用
  {{ var_name }}
  ######################### 变量迭代
  当需要重复执行任务时使用迭代机制,使用格式为:将需要迭代的内容定义为item变量引用,并通过with_items语句指明迭代的元素列表。
  例如:
  - name: add several users
  vars:
  user1: testuser1
  user2: testuser2
  user: name={{ user1 }} state=present group=wheel
  user: name={{ user2 }} state=present group=wheel
  使用迭代方式:
  - name: add several users
  user: name={{item.name}} state=present groups={{item.groups}}
  with_items:
  - { name: 'testuser1', groups: 'wheel' }
  - { name: 'testuser2', groups: 'root' }
  3. Invetory格式
  inventory文件遵循INI文件风格(括号中的字符串为组名)。可以将同一个主机同时归并到不同的组中,当目标主机使用非默认的SSH端口,还可以在主机名称之后使用冒号加端口来表明。
[webservers]

  www1.webserver.com:2222
  www2.webserver.com
  ############################主机变量
  可以在inventory中定义主机时,添加主机变量以便于在playbook中使用,例如
  www1.webserver.com http_port=80 maxRequestPerChild=808
  ############################ 组变量
  组变量是赋予制定组内所有主机的playbook可用的变量。例如:
[webservers]

  www1.webserver.com
  www2.webserver.com
[webservers:vars]

  ntp_server=ntp.webserver.com
  nfs_server=nfs.webserver.com
  ############################  组嵌套
  inventory中组可以包含其他的组,并且也可以向组中的主机指定变量。
[apache]

  httpd1.magedu.com
  httpd2.magedu.com
[nginx]

  ngx1.magedu.com
  ngx2.magedu.com
[webservers:children]

  apache
  nginx
  ############################  inventory参数
  ansible_ssh_host # 主机名
  ansible_ssh_port # 端口号,默认22
  ansible_ssh_user # ssh连接时默认用的用户名
  ansible_ssh_pass # ssh连接时的密码
  4. playbooks
  ############################ Hosts和Users

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-430763-1-1.html 上篇帖子: Ansible在节点间传输文件 下篇帖子: Ansible Galaxy
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表