【bob体育app】anisble使用及常用模块

2019-12-14 07:07栏目:bob体育app
TAG:

bob体育平台 1

ntp_server-ntp_mageedu.com

运行专业: 系统设置(物理机、设想机)-->程序包安装、配置、服务运营 --> 对主机批量操作 --> 程序版本更新 -->监控
OS Provisioning:

    物理机:PXE、Cobbler

    虚拟机:Image、Templates

Configuration:

    puppet工具(ruby开发)

    Saltstack(python开发)

    chef

Command and Concrol:

    fabric

预发布环境验证:

    新版本的代码先发布到内网测试服务器(跟线上环境配置完全相同,只是未介入到调度器);

程序发布:

    不能影响用户体验;

    系统不能停机;

    不能导致系统故障或造成系统完全不可用;

灰度发布:

    一种发布模式;在调度器上下线一批主机 --> 关闭服务 --> 部署新版本的应用程序 --> 启动服务 --> 在调度器上启用这一批主机;

    自动化灰度发布机制:可通过脚本或公司自己的发布平台发布;

 

###### ansible密钥登入

ansible密钥登录
ansible是通过ssh实现配置管理、应用部署、任务执行等功能,因此,需要事先配置ansible端能基于密钥认证的方式联系各个被管理节点;

    ansible管理端做密钥:ssh-keygen -t rsa -P ‘’

    将密钥拷贝到各个被控节点:ssh-copy-id  root@192.168.4.41

    ssh远程连接测试:ssh root@192.168.4.41 ##应该不需要密码就可以直接远程进被控端

# 向 webservers 组中主机拷贝 test.sh 到 /tmp 下,owner:钦赐属主为 root,group:内定属组为:root ,mode:权限为 0755 , backup:在覆盖以前将原来的小说件备份,备份文件包涵时间新闻。有五个选用:yes|no

service模块:

Ansible使用原则测验

要是急需依靠变量、facts或在此早先职务的施行结果来做为某task施行或然不试行的前提时索要用到条件测量试验;

1.when语句

在task后加多when子句就能够使用法则测量试验,when语句援救jinja2表达式语法,譬喻:

tasks:

  • name: "shutdown debian system"

command: /sbin/shutdown -h now

when: ansible_os_family == "Debian"

当系统为debian系统时,则关机

  • hosts: test

remote_user: root

tasks:

  • name: yum httpd

command: yum -y install httpd

when: ansible_fqdn == "wwww"

当test组的某台主机的主机名字为wwww时,才给符合条件的主机安装httpd

   hp:

- shell:/usr/bin/foo

能够应用‘ansible-doc -s 模块名 ’来查看模块的详实用法
ansible用法:ansible  [-f forks] [-m module_name] [-a args]

user模块:

    示例:ansible test -m user -a 'name=wuyongfeng state=present system=yes'

        在test组包含的被控端上创建用户,name为wuyongfeng;

        state=present表示创建用户,state=absent时表示删除用户;

        system=yes表示创建系统用户;

group模块:

示例:ansible test -m group -a 'name =testgroup gid=111 state=present system=yes'

在test组包括的被控端上创办组testgroup;

组id为111;

state=present表示创制组,state=absent时表示删除组;

syste=yes表示创设系统组,system=no表示创制的不是系统组;

cron模块:

示例:ansible test -m cron -a 'name="wuyongfeng crontab list" minute="*/20" job="/sbin/ntpdate 192.168.4.40 &>/dev/null"'

在test组包蕴的被控端增添任务安排,每20分钟向192.168.4.40齐声时间,并把出口丢如/dev/null;

name:陈设职责的陈述信息;

minute:分钟;

job:要举行的操作;

day:日(1-31,/2,……);

hour:小时(0-23,/2,……);

month:月(1-12,/2,……);

weekday:周(0-7,*,……);

user:以哪个客户的身价执行;

bob体育app,若要删除在此之前在被控端陈设的安顿义务,只需点名name和state=absent即可;

例如:

ansible test -m cron -a 'name="wuyongfeng crontab list" state=absent'

copy模块:

示例:ansible test -m copy -a 'src=/data/wyf.txt dest=/tmp/wyf.txt mode=600'

复制ansible调节端的wyf.txt文件到test组所钦定的被控端的主机的/tmp目录下

src:源路径

dest:目的路径

mode:文件权限

file模块:

特意用来设定文件属性;

ansible test -m file -a 'path=/tmp/www state=directory'

在test组定义的被控端的/tmp/下创办www目录,state内定文件属性为目录

group:定义文件/目录的属组

mode:定义文件/目录的权力

owner:定义文件/目录的属主

path:必选项,定义文件/目录的路线

recurse:递归的设置文件的属性,只对目录有效

src:要被链接的源文件的不二等秘书籍,只使用于state=link的景色

dest:被链接到的渠道,只使用于state=link的意况

state:

=directory:假若目录空中楼阁,创设目录

=file:就算文件不设有,也不会被创立

=link:创立软链接

=hard:创制硬链接

=touch:要是文件海市蜃楼,则会创设一个新的文书,即使文件或目录已存在,则更新其最后改善时间

=absent:删除目录、文件只怕吊销链接文件

ping模块:

用于确认和对象机器之间是还是不是能够ping通,平常意况会回去pong;

示例:ansible test -m ping

ping test组定义的被控端;若是是足以通的则赶回pong;

yum模块:

示例:ansible test -m yum -a 'name=httpd state=present'

在test组的被控端yum安装httpd;

config_file:yum的配备文件

disable_gpg_check:关闭gpg_check

disablerepo:不启用有个别源

enablerepo:启用某些源

name:要开展操作的软件包的名字,也足以传递三个url也许多少个地面包车型地铁rpm包的门径

state:状态(present安装,absent卸载,latest最新的)

service模块:

示例:ansible test -m service -a 'name=httpd state=started enabled=yes'

test组的有着被控端,运行httpd服务,开机运转(enabled)

enabled:[yes/no] 运营os后开发银行对应service的选项;是不是开机运转

name:须求进行操作的service名字

state:[stared/stoped/restarted/reloaded] 服务最终操作后的动静。

shell模块:

示例:ansible test -m shell -a 'sh /date/1.sh chdir=/date/www creates=/date/www/1.txt'

实行test组全体被控端,先切换成/date/www目录,假若/date/www/1.txt海市蜃楼,则实行/data/1.sh,

chdir:command同样的,运转shell以前cd到某些目录;

creates:跟command同样的,假如某些文件存在则不运营shell;

removes:跟command相近的,若是有些文件不设有则不运营shell;

script模块:

可以完结被控端上可以实践ansible调节端的剧本。

示例:ansible test -m script -a '/4.40/www/2.sh'

在test组全体被控端推行ansible调节端中/4.40./www/目录下的2.sh

setup模块:

用于搜聚远程主机的生龙活虎对中央音讯。

示例:ansible test -m setup

募集test组全数主机的主题消息

host1

        puppet工具(ruby开发)

ansible hostname -m setup

1.3 register

注册器:把职责的输出定义为变量,然后用于其余职分,示比方下:

tasks:

  • shell:/usr/bin/foo

register:foo_result

ignore_errors:True

1.4 通过命令行传递变量

在运行playbooks的时候也得以传递一些变量供playboo使用:示举个例子下:

ansible-playbook test.yml --extra-vars"hosts=www user=mageedu"

1.5 通过roles传递变量

当给一个主机应用角色的时候能够传递变量,然后在剧中人物内选拔这么些变量,示例如下:

  • hosts:webservers

roles:

  • common

  • { roles:foo_app_instance,dir:'/web/htdocs/a.com',port 8000 }

2.Inventory

ansible的最首要功能在于批量主机操作,为了方便地接受在那之中的一些主机,能够在inventory file上将其分组命名,暗中同意的inventory file为/etc/ansible/hosts

Inventory file可以有多个,且也能够通过Dynamic Inventory动态变化;

2.1 Inventory文件格式

Inventory文件INI文件风格,中括号中的字符为组名,能够将同叁个主机分配到三个例外的组,别的,当被决定的主机使用了非默许的ssh 22端口时,还是能在主机ip或主机名之后选拔冒号加端口号评释;示例:

[webservers] ##被控组组名

192.168.1.100 ##采取ip增加被控端主机

www.mageedu.com:222 ##设若被控端未有动用暗中同意的ssh端口,可用冒号加端口号注解

要是主机名称信守雷同的命名格式,还足以选用列表的主意标志主机,示例:

[webservers]

www[1:50].example.com ##表示www1.example.com-www50.example.com的主机

2.2 主机变量

能够在Inventory中定义主机时为其增进主机变量以造福在playbook中应用,比如:

[webservers]

www1.mageedu.com http_port-80 maxRequestsPerChild-808

www2.mageedu.com http_port-8080 maxRequestsPerChild-909

2.3 组变量

组变量是指赋予给钦赐组内全部主机上的在playbook中可用的变量,例如:

[webservers]

www1.mageedu.com

www2.mageedu.com

[webservers:vars] :vars是永世写法,钦命上边两行都能够独家对应给webservers组的两台主机

ntp_server-ntp.mageedu.com

nfs_server-nfs.mageedu.com

2.4 组嵌套

Inventory中,组还是能够包含其余的组,况且也得以向组中的主机钦定变量,但是,那些变量只可以在ansible-playbook中使用,而ansible不扶植,比方:

[apache]

httpd1.mageedu.com

httpd2.mageedu.com

[nginx]

nginx1.mageedu.com

nginx2.mageedu.com

[webservers:children] webservers组内包罗apache和nginx七个组,:children表示引用了别的组用来做webservers组的子组

apache

nginx

[webservers:vars]

ntp_server-ntp_mageedu.com

2.5 Inventory参数

ansible基于ssh连接Inventory中钦命的长途主机时,还足以透过参数内定其交互作用方式,那些参数如下所示:

ansible_ssh_host

ansible_ssh_port

ansible_ssh_user

ansible_ssh_pass

ansible_sudo_pass

ansible_connection

ansible_ssh_pricate_key_file

ansible_bob体育平台,shell_type

ansible_python_interpreter

ansible_*_interpreter

例:

        chef

Ansible playbooks

playbooks是多少个或八个“play”组成的列表,play的首要性意义在于将先行归总为少年老成组的主机装扮成事前经过ansible中的tasks定义好的剧中人物,从根本上来说,所谓task无非是调用ansible的一个module,将两个play组织在贰个playbook中,即能够让他俩随同起来按优先编排的编写制定同唱风流浪漫台湾大学戏,上面是三个差不离示例:

  • hosts:webservers ##定义inventory,主机组

vars:

http_port:80

max_clients:256

remote_user:root ##概念连接到长途主机时,以哪个顾客的地位实施

tasks:

  • name:install apache is at the latest version ##汇报,可随机写

yum:name=httpd state=latest ##使用yum模块,钦命选项,安装新型版本的httpd

  • name: ensure apache is running ##呈报新闻

service:name=httpd state=started ##使用service模块,指定httpd状态

handlers: ##处理器

  • name:restart apache

service:name=httpd state=restarted

playbook组成构造:

Inventory

Modules

Ad Hoc Commands

Playbooks

Tasks:义务,即调用模块产生的某操作

Variables:变量

Templates:模板

Handlers:微型机,在某条件知足时,会由有些事件触发实行的操作

Roles:角色

hosts和remote_user:

playbook中的每三个play的目标皆以为着让有些或少数主机以有个别钦赐的顾客身份实行职分,hosts即用于钦赐要履行内定任务的主机,其得以是四个或多少个由冒号分隔主机组,remote_user则用来钦命远程主机上的推行职责的客户,如以上示例中的

  • hosts:webservers

remote_user:root

不过,remote_user也能够用来各类tasks中(恐怕每一个tasks钦赐的顾客不平等),也得以钦命其经过sudo的方法在长间隔主机上实行操作,其可用于play全局或某任务,此外,以致足以在sudo时接纳sudo_user钦点sudo时切换的客户;

  • hosts:webservers

remote_user:mageedu

tasks:

  • name:test connection

ping:

remote_user:mageedu

sudo:yes ##以remote_user钦点的客户切入进去,然后以这几个客商的身份sudo到root客商去

任务列表和action:

play的本位部分是task、list、task list中的各义务按次序每一种在hosts中钦命的享有主机上实施,即在具备主机上做到第五个任务后再施行第二个职责,在运维自上而下某playbook时,如若中途发生错误,全数已奉行职分都或然回滚,因而,在更改playbook后再也施行二遍就可以;

task的指标是选取钦赐的参数实践模块,而在模块参数中能够行使变量,模块推行是幂等的,那象征这频仍进行是安全的,因为其结果均大器晚成致;

各类task都应有有个name,用于playbook的试行结果输出,提出其内容尽也许清晰地陈述职务实践步骤,假设为提供name,则实行action的结果将用以出口;

定义task的能够选取"action:module option"或"module:option"的格式,推荐使用前面一个以落成向后非常;

tasks:

  • name:make sure apache is running

service:name=httpd state=running

在非常多模块中,唯有command和shell模块仅供给给定一个列表而没有需求利用key:value格式,比方:

tasks:

  • name:disable selinux

command:/sbin/setenforce 0

假如命令或脚本的退出码不为零,能够行使如下情势替代:

tasks:

  • name:run this command and ignore the result

shell:/usr/bin/SOME COMMAND||/bin/true

在试行/usr/bin/下的某条命令时,假若报错了,不过那不影响我们本人希望只怕奉行结果时,能够运用/bin/true将退出码强迫改为true

还是应用ignore_errors来忽视错误音信:

tasks:

  • name:run this command and ignore the result

shell:/usr/bin/SOME COMMAND

ignore_errors:True

Handlers:处理器

用于当关切的财富爆发变化时使用一定的操作:

“notify”这几个action可用来在各种play的末梢被触发,这样能够幸免频依然有改造爆发时每趟都施行内定的操作,代替他, 仅在有着的成形产生完成后叁回性的履行钦定操作,在notify中列出的操作成为Handlers,也即notify中调用handlers中定义的操作;

示例:

  • hosts: test #主机组,在/etc/ansible/hosts定义

remote_user: root # 远端施行职务的顾客

tasks: #任务

  • name: install httpd #职分描述

command: yum -y install httpd #调用ansible的command模块安装httpd

  • name: install configuration file for httpd #任务描述

copy: src=/data/httpd.conf dest=/etc/httpd/conf/httpd.conf #调用ansible的copy模块复制ansible管理端的文本到被控端

notify: #概念叁个notify,当履行copy这几个模块的一声令下时实践notify

  • restart httpd # notify援引的handlers的名称叫restart httpd(必得跟handlers的名字同样)

handlers: # 定义三个handlers

  • name: restart httpd #名字为restart httpd

service: name=httpd state=restarted #调用ansible的service模块,重启httpd服务

[root@hd01 ~]# ansible webservers -a "/sbin/ip addr show dev eth0"  #查看webservers组中主机网卡消息

tasks:

Ansible Playbooks

 

- name:run this command and ignore the result

在playbook中采用变量:
  • hosts: test #主机组,在/etc/ansible/hosts定义

remote_user: root # 远端实施职务的客户

vars: ##概念变量package和service

  • package: httpd

  • service: httpd

tasks: #任务

  • name: rpm -e httpd

command: rpm -e httpd

  • name: install {{ package }} #职分描述 调用变量用{{ }}援引

command: yum -y install httpd #调用ansible的command模块安装httpd

  • name: install configuration file for httpd

copy: src=/data/httpd.conf dest=/etc/httpd/conf/httpd.conf

notify:

  • restart httpd

handlers:

  • name: restart httpd

service: name=httpd state=restarted

bob体育平台 2

=hard:创造硬链接

ansible常用模块

192.168.1.100               #IP

> ansible_*_interpreter

ansible安装
## wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo

## yum -y install ansible

配置文件:/etc/ansible/ansible.cfg

主机清单:/etc/ansible/hosts

bob体育平台 3

- hosts: test      #\主机组,在/etc/ansible/hosts定义

Ansible playbook使用迭代(循环)

当有亟待重复性推行的天职时,能够应用迭代机制,其利用格式为将急需迭代的内容定义为item变量援用,并由此with_item语句来指明迭代的因素列表就可以,举个例子:

  • hosts: test

remote_user: root

tasks:

  • name: touch file

file: name={{ item }} state=directory ##巡回创制ietm,而item对应的值为with_items中钦赐的

with_items: ##列出item索要对应的值

  • file1

  • file2

事实上,with_items中得以接受要素还可为hashes,举个例子:

  • hosts: test

remote_user: root

tasks:

  • name: touch file

user: name={{ item.name}} state=present groups={{ item.groups }} ##在逐风流倜傥主机创立顾客,甚至钦定用户的基本组

with_items:

  • { name: 'testuser1', groups: 'nginx' }

  • { name: 'testuser2', groups: 'apache' }

  executable location = /usr/bin/ansible

[webservers]

Ansible基本功成分

1.变量

1.1 变量命名

变量名仅能由字母,数字和下划线组成,且只可以以字母带头

1.2 facts

facts是由正在通信的远程目的主机重临的音信,那些消息能保存在ansible变量中,要获得内定的长间隔主机所支持的一贯的facts,可使用如下命令举办

ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.13

- name: touch file

playbook的骨干因素:

Tasks:任务

Variables:变量

Templates:模板

Handlers:处理器

Roles:角色

ansible --yaml语法

一:介绍:

YAML是贰个可读性高的用来揭橥资料连串的格式。YAML参考了其它三种语言,包含:XML、C语言、Python、Perl等。

YAML不是XML,可是,在支付的这种语言时,YAML的意趣其实是:“Yet Another Makup Language”(仍为蓬蓬勃勃种标记语言卡塔尔(英语:State of Qatar)

特点:

1、可读性好

2、和本子的交互作用性好

3、使用完毕怨言的数据类型

4、有叁个同等的新闻模型

5、易于落到实处。

6、能够依附流来管理。

7、表明技艺强,扩张性好。

二:yaml语法

yaml的语法和任何高阶语言肖似,何况能够简轻便单表明清单,散列表,标量等数据布局,其协会通过空格来显示,种类里的品类用“-”来代表,map里的键值对用“:”分隔,上边是八个示范:

name:john smith

age:41

gender:male

spouse:

name:jane smith

age:37

gender:female

children:

  • name:jimmy smith

age:17

gender:male

  • name:jenny smith

age:14

gender:female

列表: 也称为类别

列表中的全数因素都用“-”打头,譬喻:

  • apple

  • orange

  • mango

字典:

字典通过key与value进行标志,比如:


name:example developer

job:developer

skill:elite

也能够将key:value放置与{}合意味,举例:

{name:example developer,job:developer,skill:elite}

 - apple

Handlers:处理器

Ansible中使用Templates

http://blog.csdn.net/modoo_junko/article/details/45460693

安装

ansible-playbook test.yml --extra-vars"hosts=www user=mageedu"

ansible的简短利用
1、修改/etc/ansible/hosts文件,添加ansible被控主机或被控组;

    ##必须先在hosts文件添加主机ip,不然远程控制被控端时会报错: [WARNING]: No hosts matched, nothing to do

2、执行一个简单的ansible命令:

    在ansible控制端执行:

    ansible 192.168.4.41 -m command -a 'ifconfig'会显示被控端的网卡信息

yum clean all

不过,remote_user也可以用于各样tasks中(恐怕各类tasks钦点的客商不相仿),也足以钦命其经过sudo的办法在长途主机上试行操作,其可用来play全局或某任务,其它,以至足以在sudo时使用sudo_user钦点sudo时切换的顾客;

Ansible总结

   level: 2

when: ansible_os_family == "Debian"

playbook的三个粗略实例:
  • hosts: test #主机组,在/etc/ansible/hosts定义

remote_user: root # 远端实践职务的顾客

tasks: #任务

  • name: install httpd #义务描述

command: yum -y install httpd #调用ansible的command模块安装httpd

- orc:

###### 运营工具的分类 :

ansible的模块化:
模块化:调用特定的模块来完成特定的任务;

基于python语言实现,由paramaiko、pyYAML和jinja2三个关键模块

部署简单:agentless类工具

主从模式:

支持自定义模块:

支持playbook:

 

www.mageedu.com:222 ##只要被控端未有行使私下认可的ssh端口,可用冒号加端口号申明

运转为工人身份具的分类 :
agent:代理工具:puppet,func

agentless:无代理工具:ansible,fabric;agentless类工具必须依赖ssh服务;

[webservers]                #组名

www1.mageedu.com http_port-80 maxRequestsPerChild-808

  level: 2

command: yum -y install httpd  #\调用ansible的command模块安装httpd

obj = yaml.load(

###### Ansible playbook使用迭代(循环)

举个例子表达 格式:

    agent:代理工科具:puppet,func

例:

www1.mageedu.com

        "123"

tasks:

 

copy: src=/data/httpd.conf dest=/etc/httpd/conf/httpd.conf  #\调用ansible的copy模块复制ansible管理端的公文到被控端

orc:

###### 能够动用‘ansible-doc -s 模块名 ’来查看模块的事必躬亲用法

['apple', 'banana', 'orange']

[webservers]

host1 http_port=80 maxRequestsPerChild=808

name:john smith

hd.*或者192.168.1.*                   帮忙正则相配主机也许IP地址

gender:male

达成部分监察和控制功效

- { roles:foo_app_instance,dir:'/web/htdocs/a.com',port 8000 }

块映射正是将陈述的要素种类到字典的中,格式为”key: value”,以下为YAML例子:

job:要开展的操作;

all或者'*'                                   相配全数主机

- restart httpd

二、特性


换163的源

remote_user: root

 - banana

tasks:        #\任务

[root@hd01 ~]# ansible webservers -a "/bin/df -h" #输出挂载音信

register:foo_result

结果:

示例:ansible test -m copy -a 'src=/data/wyf.txt dest=/tmp/wyf.txt mode=600'

Ansible通过定义好的主机与组法规(Inventory卡塔尔(قطر‎对天造地设的指标主机举行长间距操作,配置文件默许是/etc/ansible/hosts

Tasks:任务

    ]

            system=yes表示成立系统客商;

虽展现成功,但指标文件未被删去

shell模块:

举例小编要批量刨除一些文本, 

- { name: 'testuser2', groups: 'apache' }

RETURN VALUES:

[webservers:vars]

[root@hd01 ~]# ansible webservers -m service -a "name=httpd state=restarted" #重启httpd

- hosts: test  #\主机组,在/etc/ansible/hosts定义

 

特点:

bob体育平台 4

示例:ansible test -m script -a '/4.40/www/2.sh'

[root@hd01 ~]# ansible webservers -m get_url -a "url= dest=/tmp/index.html mode=0440 force=yes"  

> ansible_sudo_pass

实例

remote_user:mageedu

[root@hd01 ~]# ansible webservers -m mount -a 'name=/test src=/dev/sdb1 fstype=ext3 opts=ro state=present' 

1.5 通过roles传递变量

        "123"

Variables:变量

相配目的主机准则表

cron模块:

192.168.1.110               #IP

minute:分钟;

    "rc": 0,

ansible test -m file -a 'path=/tmp/www state=directory'

 

        ansible 192.168.4.41 -m command -a 'ifconfig'会显示被控端的网卡音信

host2

copy模块:

[root@hd01 ~]# ansible webservers -m ping

例如:

import yaml

1.4 通过命令行传递变量

 

Inventory file能够有三个,且也足以透过Dynamic Inventory动态变化;

 

能够兑现被控端上得以执行ansible调控端的台本。

例:

handlers:

# Induce an exception to see what happens

=absent:删除目录、文件或许撤回链接文件

重启webservers组所有Apache服务

Handlers:处理器

因为您的指令行中包蕴了通配符*号,通配符必须要有在shell意况中才干被识别出,不然,它一定要删除test*.sh这叁个文本。

    程序公布:

 

facts是由正在通讯的远程指标主机再次回到的消息,这么些新闻能保存在ansible变量中,要获得钦命的远程主机所支撑的根本的facts,可应用如下命令进行

host2 http_port=303 maxRequestsPerChild=909

    支持playbook:

为此你供给举办以下命令本事成功

示例:ansible test -m yum -a 'name=httpd  state=present'

- orange

tasks:

[root@hd01 ~]#ansible webservers -m yum -a "name=httpd state=latest"

service:name=httpd state=running

在/etc/ansible/hosts中主机能够用域名、IP、小名进行标记。

setup模块:

192.168.1.12 | SUCCESS => {

可以在Inventory中定义主机时为其增进主机变量以有支持在playbook中运用,比如:

远程Linux主机sysctl配置。

with_items:

 bob体育平台 5

max_clients:256

db-[a:f].example.com

        自动化灰度宣布机制:可通过脚本或集团温馨的公布平台发布;

bob体育平台 6

group:定义文件/目录的属组

ansible webservers -m ping -u ansible -sudo

> ansible_ssh_port

#下载百度首页index.html文件

示例:

 

实施test组全体被控端,先切换成/date/www目录,假设/date/www/1.txt不设有,则推行/data/1.sh,

   sp: 0

在施行/usr/bin/下的某条命令时,假使报错了,可是那不影响我们自个儿希望大概试行结果时,能够使用/bin/true将退出码强迫改为true

 mv CentOS6-Base-163.repo /etc/yum.repos.d/

=touch:借使文件不真实,则会创建三个新的文书,假诺文件或目录已存在,则更新其最后修改时间

一、简介

- hosts: test

 

recurse:递归的设置文件的天性,只对目录有效

YAML语言

remote_user: root

 

        将密钥拷贝到各种被控节点:ssh-copy-id  root@192.168.4.41

    "changed": true,

    援救自定义模块:

mail.example.com

Playbooks

    "stdout": "123rn",

http_port:80

[root@hd01 ~]# ansible webservers -m user -a "name=wang comment='user wang'"

-  name:jenny smith

 

###### Ansible使用准绳测量检验

 

    2、施行三个简短的ansible命令:

定义组变量

remote_user: root    # \远端实施职责的客商

  python version = 2.6.6 (r266:84292, Aug 18 2016, 15:13:37) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]

service:name=httpd state=restarted

  level: 4

        fabric

 

remote_user:root

  config file = /etc/ansible/ansible.cfg

当给多少个主机应用剧中人物的时候能够传递变量,然后在角色内使用那一个变量,示举个例子下:

>>sysctl 包管理模块

2.4 组嵌套

- ping:

        物理机:PXE、Cobbler

bob体育平台 7

###### ansible的模块化:

[root@hd01 ~]# ssh-keygen -t rsa   #创制公钥与私钥

    主机清单:/etc/ansible/hosts

 

with_items:  ##列出item索要对应的值

 

- hosts: test

同盟指标

age:17

ntp_server=ntp. atlanta.example.com

    user模块:

[root@hd02 ~]# crontab -l

当系统为debian系统时,则关机

例:

Templates:模板

概念主机变量

config_file:yum的陈设文件

 

removes:跟command类似的,假若有个别文件空头支票则不运维shell;

       角色              主机名                  IP                                组名             

黄金年代经主机名称坚守相通的命名格式,仍是可以动用列表的点子标记主机,示例:

ansible的command和shell模块的分裂:

remote_user:mageedu

192.168.1.90:2135         #概念三个SSH服务端口为:2135的主机  

在test组包蕴的被控端增加任务陈设,每20分钟向192.168.4.40同步时间,并把出口丢如/dev/null;

当未有做免密码访问时用 ansible webservers -m ping -k

    ansible是由此ssh达成配置管理、应用安排、职责奉行等功用,由此,须求事前配置ansible端能依据密钥认证的方法联系各种被管理节点;

                                                          #state的4种指标状态

handlers:  #\ 定义叁个handlers

块映射描述:

weekday:周(0-7,*,……);

- ping:

- name: restart httpd  #\名字为restart httpd

 

Ad Hoc Commands

bob体育平台 8

- name: rpm -e httpd

wget      

示例:ansible test -m shell -a 'sh /date/1.sh chdir=/date/www creates=/date/www/1.txt'

配置源(centos7)
rpm -iUvh
下载配置文件(centos7)
wget          CentOS7-Base-163.repo重假诺为着设置:PyYAML
mv CentOS7-Base-163.repo /etc/yum.repos.d/

在test组定义的被控端的/tmp/下创建www目录,state钦点文件属性为目录

    "stderr": "Shared connection to 192.168.1.12 closed.rn",

##### 运营职业:  系统安装(物理机、虚构机)-->程序包安装、配置、服务运行 --> 对主机批量操作 --> 程序版本更新 -->监察和控制

 

- name: yum httpd

    description: value provided with the data parameter

> ansible_ssh_host

"""

2.3 组变量

Ansible在github上地址:

    OS Provisioning:

YAML块连串与块映射是能够自由组合在合营的,他们之间能够并行嵌套,通过灵活的整合达成复杂的对象属性。比如:

        系统无法停机;

    "stderr": "Shared connection to 192.168.1.13 closed.rn",

极其用来设定文件属性;

bob体育平台 9

nginx1.mageedu.com

布置轻便,只需在主要调控端陈设 Ansible 情形,被控端无需做其余操作。

state:[stared/stoped/restarted/reloaded] 服务最后操作后的景观。

yaml语言是生龙活虎种基于Unicode轻巧阅读,轻巧和脚本语言交互作用的,用来发挥数据体系的编制程序语言。Ansible与Saltstack情形中安插文件都是YAML格式存在,YAML文件扩张名普通为.yaml或许.yml

Modules

 

Roles:角色

Python:

- common

版权声明:本文由bob体育app发布于bob体育app,转载请注明出处:【bob体育app】anisble使用及常用模块